Heim >Backend-Entwicklung >PHP-Tutorial >Warum erzeugt meine PHP-Schleife „while (!feof())' eine unvollständige Ausgabe?

Warum erzeugt meine PHP-Schleife „while (!feof())' eine unvollständige Ausgabe?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 20:18:14824Durchsuche

Why Does My PHP `while (!feof())` Loop Produce Incomplete Output?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn