PHPの入力がファイルの終わりを超えています

王林
リリース: 2023-05-06 20:37:05
オリジナル
1002 人が閲覧しました

PHP 開発では、不可解なエラーが発生することがあります。中でも厄介なエラーの 1 つは、ファイルの読み取り、ファイルのアップロード、ファイルの保存時に発生する「入力がファイルの末尾を超えています」です。

このエラーの原因は通常、ファイルのサイズまたはアップロードされたファイルのサイズが PHP.INI で設定された制限を超えていることが原因です。 PHP.INI にはファイルのアップロードに関する制限がいくつかあり、これらの制限により、一部の悪意のあるユーザーによる大きなファイルのアップロードが防止され、PHP のセキュリティが保護されます。

同時に、このエラーは、PHP 解析エンジンのエラーやバグによって発生する場合があります。

「入力がファイルの末尾を超えています」エラーが発生した場合はどうすればよいですか?いくつかの解決策を見てみましょう。

  1. PHP.INI の制限を変更する

最初の解決策は、PHP.INI の関連する制限を変更することです。これにより、PHP がより大きなファイルを受け入れることができるようになります。以下の変更方法を参照してください。

  • 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. サードパーティのライブラリを使用して大きなファイルを読み取る

2 番目の方法は、サードパーティのライブラリを使用して大きなファイルを読み取ることです。例えば、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 公式 Web サイトにアクセスしてヘルプを求めるか、解決策を待つことができます。

概要

「入力がファイルの末尾を超えています」エラーは、PHP 開発でよく発生します。通常は、ファイルのサイズまたはアップロードされたファイルのサイズが PHP の制限を超えていることが原因です。 .INI。このエラーを回避するには、PHP.INI ファイル内のファイルのアップロード関連の制限を変更するか、サードパーティのライブラリを使用して大きなファイルを読み取るか、コードに問題の原因となっている構文エラーやロジック エラーがないかどうかを確認します。この記事が開発者がそのような問題を解決するのに役立つことを願っています。

以上がPHPの入力がファイルの終わりを超えていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート