Problem:
Beim Versuch, etwas zu lesen und anzuzeigen Wenn Sie den Inhalt einer Textdatei mithilfe einer PHP-While-Schleife (!feof()) anzeigen, werden nicht alle Daten ausgegeben. Die letzte Zeichenfolge in der Datei wird abgeschnitten.
Antwort:
Die Hauptursache für dieses Problem liegt in der Platzierung der EOF-Prüfung. Der ursprüngliche Code überprüfte das Ende der Datei, bevor er die letzte Zeile ausgab. Dies führte dazu, dass die letzte Zeile teilweise abgeschnitten wurde.
Um dieses Problem zu beheben, sollte die EOF-Prüfung in den Lesevorgang integriert werden. Hier ist der korrigierte Code:
<?php $line_count = 0; $handle = fopen("item_sets.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; $line_count++; } } else { echo 'Unexpected error opening file'; } fclose($handle); echo PHP_EOL.PHP_EOL.PHP_EOL.'Lines read from file = ' . $line_count; ?>
Zusätzliche Überlegungen:
Mit diesem korrigierten Code wird der gesamte Inhalt der Textdatei erfolgreich gelesen und angezeigt, einschließlich der letzten Zeile.
Das obige ist der detaillierte Inhalt vonWarum erzeugt meine PHP-Schleife „while (!feof())' eine unvollständige Dateiausgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!