Lesen von Textdateien in PHP
-
Verwenden Sie die Funktion
fgets()
, um Textdateien Zeile für Zeile in PHP zu lesen -
Verwenden Sie die Funktion
file()
, um Textdateien Zeile für Zeile in PHP zu lesen -
Verwenden Sie die Funktionen
file_get_contents()
undexplode()
, um Dateien Zeile für Zeile in PHP zu lesen
In diesem Artikel werden Methoden zum zeilenweisen Lesen von Textdateien in PHP vorgestellt.
Verwenden Sie die Funktion fgets()
, um Textdateien Zeile für Zeile in PHP zu lesen
Wir können die Funktion fgets()
mit einer while
-Schleife verwenden, um Textdateien in PHP zeilenweise zu lesen. Die Funktion gibt eine Zeile zurück, wenn eine Zeile vorhanden ist, und gibt false zurück, wenn keine weiteren Zeilen zum Lesen vorhanden sind. Es braucht zwei Parameter. Die Syntax lautet wie folgt.
fgets($file, $length)
$file
gleicht hier einem Dateizeiger, der auf eine erfolgreich geöffnete Datei zeigt. Die Option $length
, optional, gibt die Anzahl der zu lesenden Bytes an.
Wir können die Funktion open()
verwenden, um die Datei zu lesen und dann die while
-Schleife verwenden, um jede Zeile mit der Funktion fgets()
zu durchlaufen. Wir haben eine Textdatei abc.txt
mit folgendem Inhalt.
Hi
How are you
Have a great day
Erstellen Sie zum Beispiel eine Variable $txt_file
und schreiben Sie die Funktion fopen()
darin. Öffnen Sie die Datei abc.txt
im r
-Modus. Erstellen Sie eine Zeilenzählervariable $a
und weisen Sie dieser den Wert 1
zu. Erstellen Sie dann eine while
-Schleife. Schreiben Sie in die Klammer der Schleife die Funktion fgets()
mit $text_file
als Parameter. Weisen Sie die Funktion in der Schleife einer Variablen $line
zu. Geben Sie die Variable $line
aus und verketten Sie sie mit der Variablen $a
im Schleifenkörper. Erhöhen Sie die Variable $a
und verwenden Sie außerhalb der Schleife die Funktion fclose()
, um den Dateistrom zu schließen.
Beispielcode:
<?php
$txt_file = fopen('abc.txt','r');
$a = 1;
while ($line = fgets($txt_file)) {
echo($a." ".$line)."<br>";
$a++;
}
fclose($txt_file);
?>
Ausgabe:
1 Hi
2 How are you
3 Have a great day
Verwenden Sie die Funktion file()
, um Textdateien Zeile für Zeile in PHP zu lesen
Die Funktion file()
liest die gesamte Datei in ein Array ein. Die Syntax der Funktion file()
ist wie folgt.
file($filename, $flag, $context)
Dabei ist $filename
der zu lesende Dateipfad. Die Option $flag
ist optional und besteht aus verschiedenen Konstanten wie FILE_USE_INCLUDE_PATH
, FILE_IGNORE_NEW_LINES
und FILE_SKIP_EMPTY_LINES
. Der dritte ist ebenfalls optional und definiert eine Kontextressource.
Die Funktion file()
gibt das gesamte Array zurück, falls es existiert oder gibt false zurück. Mit der Funktion können wir den Dateikontext Zeile für Zeile mit dem Helo der Funktion foreach()
lesen. Die Funktion foreach()
durchläuft den gesamten Inhalt und extrahiert jede Zeile einzeln.
Speichern Sie beispielsweise den Dateipfad in einer Variablen $txt_file
. Schreiben Sie eine Variable $lines
und speichern Sie darauf die Funktion file()
mit $txt_file
als Parameter. Verwenden Sie als nächstes die Funktion foreach()
, um den Inhalt der Datei zu durchlaufen. Verwenden Sie $lines
als Iterator und $num=>$line
als Wert. Geben Sie im Schleifenkörper die Variablen $num
und $line
aus.
Beispielcode:
$txt_file = 'abc.txt';
$lines = file($txt_file);
foreach ($lines as $num=>$line)
{
echo 'Line '.$num.': '.$line.'<br/>';
}
Ausgabe:
Line 0: Hi
Line 1: How are you
Line 2: Have a great day
Verwenden Sie die Funktionen file_get_contents()
und explode()
, um Dateien Zeile für Zeile in PHP zu lesen
Die Funktion file_get_contents()
liest die gesamte Datei in einen String ein. Es gibt die gesamte Datei als String zurück, wenn der Inhalt vorhanden ist oder false zurückgibt. Wir können den Dateipfad als Parameter der Funktion angeben. Die Funktion explode()
teilt einen String mit einem Trennzeichen in ein Array auf. Die Syntax der Funktion explode()
lautet wie folgt.
explode(separator, $string, $limit)
Die Option separator
wird verwendet, um $string
durch die Anzahl der $limit
-Elemente zu trennen, während der Wert zurückgegeben wird. Wir können die Funktionen file_get_contents()
, explode()
und foreach()
kombinieren, um die Textdatei zeilenweise in PHP zu lesen.
Erstellen Sie beispielsweise eine Variable $contents
und schreiben Sie darauf die Funktion file_get_contents()
mit dem Dateipfad im Parameter. Verwenden Sie die Funktion explode()
mit dem Zeichen \n
als Trennzeichen und $contents
als String. Weisen Sie die Funktion einer Variablen $lines
zu. Verwenden Sie die foreach
-Schleife, um $lines
als $line
zu schleifen. Geben Sie dann die $line
innerhalb des Schleifenkörpers aus.
Im folgenden Beispiel gibt die Variable $contents
einen String zurück. Wir haben es in ein Array mit dem Newline-Zeichen \n
aufgeteilt und jede Zeile mit der Schleife gedruckt.
Beispielcode:
$contents=file_get_contents("abc.txt");
$lines=explode("\n",$contents);
foreach($lines as $line){
echo $line.'<br>';
}
Ausgabe:
Hi
How are you
Have a great day
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn