Heim >Backend-Entwicklung >PHP-Tutorial >Warum speichert mein Code nur die letzte Zeile der Textdatei im Array und nicht alle Zeilen?
Textdateizeilen in Array-Elemente einlesen
Frage:
In diesem Codeausschnitt für Lesen einer Textdatei Zeile für Zeile in ein Array:
<code class="php">$file = fopen("members.txt", "r"); while (!feof($file)) { $line_of_text = fgets($file); $members = explode('\n', $line_of_text); } fclose($file);</code>
Warum enthält das $members-Array nur die letzte Zeile der Textdatei und nicht ein Element für jede Zeile?
Antwort:
Der bereitgestellte Code liest Zeilen aus der Textdatei korrekt, es tritt jedoch ein Problem beim Erstellen des Zeilenarrays auf. Wenn Sie „explosive('n', $line_of_text)“ innerhalb der Schleife verwenden, wird das $members-Array in jeder Iteration überschrieben und letztendlich nur die letzte Zeile gespeichert.
Um dieses Problem zu beheben, verwenden Sie stattdessen die Dateifunktion:
<code class="php">$lines = file($filename, FILE_IGNORE_NEW_LINES);</code>
Diese Funktion erstellt direkt ein Array, in dem jedes Element eine Zeile aus der Textdatei darstellt. Durch die Verwendung von FILE_IGNORE_NEW_LINES wird das Newline-Zeichen in jeder Zeile übersprungen, um sicherzustellen, dass das Array nur den Zeileninhalt enthält.
Das obige ist der detaillierte Inhalt vonWarum speichert mein Code nur die letzte Zeile der Textdatei im Array und nicht alle Zeilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!