>  기사  >  백엔드 개발  >  PHP 입력이 파일 끝을 초과했습니다.

PHP 입력이 파일 끝을 초과했습니다.

王林
王林원래의
2023-05-06 20:37:05954검색

PHP 개발 시 설명할 수 없는 오류가 발생할 수 있습니다. 가장 골치 아픈 오류 중 하나는 파일 읽기, 파일 업로드, 파일 저장 시 일반적으로 발생하는 "입력이 파일 끝을 초과합니다"입니다.

이 오류의 원인은 일반적으로 파일 크기 또는 업로드된 파일 크기가 PHP.INI에 설정된 제한을 초과했기 때문입니다. PHP.INI에는 파일 업로드와 관련된 몇 가지 제한 사항이 있습니다. 이러한 제한 사항은 일부 악의적인 사용자가 대용량 파일을 업로드하는 것을 방지하고 PHP의 보안을 보호할 수 있습니다.

동시에 이 오류는 PHP 구문 분석 엔진의 일부 오류나 버그로 인해 발생하는 경우도 있습니다.

"파일 끝을 초과하여 입력했습니다." 오류가 발생하면 어떻게 해야 하나요? 몇 가지 솔루션을 살펴보겠습니다.

  1. PHP.INI의 제한 사항 수정

첫 번째 해결 방법은 PHP가 더 큰 파일을 허용할 수 있도록 PHP.INI의 관련 제한 사항을 수정하는 것입니다. 아래 수정 방법을 참조하세요.

  • PHP.INI 파일을 엽니다.
  • 다음 매개변수를 찾으세요.
upload_max_filesize = 2M 
post_max_size = 8M 
max_execution_time = 30 
  • 해당 값을 더 큰 값으로 수정하세요. 예:
upload_max_filesize = 100M 
post_max_size = 100M 
max_execution_time = 300
  • 수정된 PHP.INI 파일을 저장하고 Apache를 다시 시작합니다.
  1. 타사 라이브러리를 사용하여 대용량 파일 읽기

두 번째 방법은 타사 라이브러리를 사용하여 대용량 파일을 읽는 것입니다. 예를 들어 fgetcsv 함수를 사용하여 대용량 CSV 파일을 읽을 때 파일이 너무 크면 "입력이 파일 끝을 초과했습니다." 오류가 발생할 수 있습니다. 이때 Spout와 같은 라이브러리를 사용하여 대용량 파일을 읽을 수 있습니다. 코드 예:

require_once('spout/src/Spout/Autoloader/autoload.php');

use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;

$reader = ReaderEntityFactory::createXLSXReader();
$reader->open('large_file.xlsx');

foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $cells = $row->getCells();
        foreach ($cells as $cell) {
            //do something
        }
    }
}

$reader->close();

이 방법은 PHP의 기본 읽기 방법이 너무 폭력적인 것을 방지할 수 있으며 대용량 파일을 읽는 데에도 더 효율적입니다.

  1. PHP 구문 분석 엔진을 확인하세요

마지막으로 이 문제가 발생하면 먼저 파일 경로와 오류 프롬프트의 줄 번호를 기록한 다음 파일의 코드를 확인하여 문법 오류가 있는지 또는 논리적 오류 파일을 읽는 동안 오류가 발생했습니다. 동시에 이 오류를 발생시키는 PHP 구문 분석 엔진에 버그가 있는지 확인할 수도 있습니다. 이 경우 PHP 공식 웹사이트로 이동하여 도움을 받거나 해결 방법을 기다릴 수 있습니다.

요약

PHP 개발 시 "입력이 파일 끝을 초과했습니다" 오류가 자주 발생합니다. 일반적으로 파일 크기나 업로드된 파일 크기가 PHP.INI의 제한을 초과했기 때문입니다. 이 오류를 방지하려면 PHP.INI 파일에서 파일 업로드 관련 제한 사항을 수정하거나, 타사 라이브러리를 사용하여 대용량 파일을 읽거나, 문제를 일으키는 코드에 구문 또는 논리 오류가 있는지 확인하면 됩니다. 이 기사가 개발자가 이러한 문제를 해결하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 입력이 파일 끝을 초과했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.