Heim >Backend-Entwicklung >PHP-Tutorial >Warum erzeugt meine PHP-Schleife „while (!feof())' eine unvollständige Ausgabe?
PHP-Schleife: Unvollständige Ausgabe mit while (!feof()) auflösen
In PHP kann es vorkommen, dass eine Schleife while verwendet (!feof()) gibt nicht den gesamten erwarteten Inhalt aus. Dieses Problem kann durch eine falsche Platzierung der EOF-Prüfung innerhalb der Schleife entstehen, wie ein Benutzer zeigt, der versucht, eine gesamte TXT-Datei zu lesen und wiederzugeben.
Der Originalcode:
$handle = fopen("item_sets.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $trimmed = trim($buffer); echo $trimmed; }
In diesem Code wird die Prüfung auf EOF vor der Ausgabe des gelesenen Inhalts platziert. Infolgedessen wird die Schleife beendet und stoppt das Lesen der Datei, bevor die letzte Zeile vollständig gedruckt ist.
Die Lösung besteht darin, die EOF-Prüfung in den Lesevorgang einzubinden:
$handle = fopen("item_sets.txt", "r"); while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; }
Durch Verschieben der EOF prüft den Zustand der while-Schleife. Der Code stellt sicher, dass die Schleife weiterhin Zeilen liest und druckt, bis das Ende der Datei erreicht ist.
Das obige ist der detaillierte Inhalt vonWarum erzeugt meine PHP-Schleife „while (!feof())' eine unvollständige Ausgabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!