PHP – Schleifenineffizienz beim Lesen und Anzeigen von Textdateiinhalten
In PHP ist es Ihr Ziel, den gesamten Text effektiv zu lesen und anzuzeigen Datei. Sie sind jedoch auf ein Problem gestoßen, bei dem die while-Schleife (!feof()) nicht den gesamten Inhalt wie beabsichtigt ausgibt.
Das Problem entsteht durch die Platzierung der Dateiendeprüfung (EOF). . In Ihrem Code wird die EOF-Prüfung durchgeführt, bevor der Inhalt tatsächlich ausgegeben wird. Dies kann dazu führen, dass die letzte Zeichenfolge in der Datei nur teilweise gedruckt wird.
Um dies zu beheben, platzieren Sie Ihren EOF-Check innerhalb des Lesevorgangs selbst. Der korrigierte Code unten:
while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; }
Darüber hinaus wird empfohlen, die Verwendung des Unterdrückungsoperators (@) vor fopen zu vermeiden, da er Fehler verbergen kann, die beim Öffnen der Datei auftreten können. Ihr aktualisierter Code ohne Fehlerunterdrückung:
$handle = fopen("item_sets.txt", "r");
Jetzt durchläuft die Schleife die Datei, bis der EOF erreicht ist, und gibt den gesamten Inhalt korrekt aus. Denken Sie daran, dass es für robusten Code ratsam ist, alle Fehler zu behandeln, die beim Öffnen oder Lesen der Datei auftreten können.
Das obige ist der detaillierte Inhalt vonWarum zeigt meine PHP-Schleife „while (!feof())' nicht die gesamte Textdatei an und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!