Lesen von Textdateien in PHP

Subodh Poudel 30 Januar 2023
  1. Verwenden Sie die Funktion fgets(), um Textdateien Zeile für Zeile in PHP zu lesen
  2. Verwenden Sie die Funktion file(), um Textdateien Zeile für Zeile in PHP zu lesen
  3. Verwenden Sie die Funktionen file_get_contents() und explode(), um Dateien Zeile für Zeile in PHP zu lesen
Lesen von Textdateien in PHP

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 Poudel avatar Subodh Poudel avatar

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