ホームページ >バックエンド開発 >PHPチュートリアル >PHP の「while (!feof())」ループが不完全な出力を生成するのはなぜですか?
PHP ループ: while (!feof()) を使用した不完全な出力の解決
PHP では、while を使用したループが次のような状況に遭遇することがあります。 (!feof()) は、予期された内容をすべて出力しません。この問題は、ユーザーが .txt ファイル全体を読み取ってエコーしようとしていることからわかるように、ループ内の EOF チェックの配置が正しくないために発生する可能性があります。
元のコード:
$handle = fopen("item_sets.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $trimmed = trim($buffer); echo $trimmed; }
このコードでは、読み込んだ内容を出力する前にEOFのチェックを入れています。その結果、最後の行が完全に出力される前にループが終了し、ファイルの読み取りが停止します。
解決策には、読み取りプロセス内に EOF チェックを組み込むことが含まれます。
$handle = fopen("item_sets.txt", "r"); while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; }
while ループの条件に対する EOF チェック。このコードは、ファイルの終わりに達するまでループが行の読み取りと出力を継続することを保証します。
以上がPHP の「while (!feof())」ループが不完全な出力を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。