PHP – Datei lesen

Textdateien bieten zwar nicht den Komfort einer Datenbank, erfüllen aber bei kurzen Texten durchaus ihren Zweck.
Vor dem Lesen einer Textdatei muss diese erstmal geöffnet werden. Die PHP-Funktion fopen erzeugt ein Handle zu einer Datei. Zusätzlich zum Dateinamen erwartet fopen die Art, wie die Datei geöffnet werden soll.

Die folgenden Modi stehen zur Verfügung:

Modus Beschreibung Zeiger Position Datei erzeugen
r Lesen Anfang Nein
r+ Lesen, Schreiben Anfang Nein
w Schreiben Anfang Ja
w+ Lesen, Schreiben Anfang Ja
a Schreiben Ende Ja
a+ Lesen, Schreiben Ende Ja

Eine geöffnete Datei sollte nach der Bearbeitung wieder mit der PHP-Funktion fclose geschlossen werden. Als Parameter erwartet fclose das Handle der geöffneten Datei.

Datei öffnen und schließen

Dieses Beispiel öffnet eine Datei im Modus r (lesen) und schließt diese danach wieder:

1
2
3
4
5
<?php
$handle = fopen ("datei-lesen.txt", "r");
 
fclose ($handle);
?>

Zeilenweises Lesen

Das erste Beispiel öffnet und schließt eine Datei. Was jetzt noch fehlt ist das Lesen des Inhalts. Das nächste Beispiel liest die komplette Datei zeilenweise ein. Die PHP-Funktion fgets übernimmt diese Aufgaben. Als Parameter wird das Dateihandle und optional die Anzahl der zu lesenden Zeichen erwartet. Zu beachten ist dabei, dass immer ein Zeichen weniger gelesen wird als angegeben. Wenn der optional Parameter fehlt, wird bis zum Ende der Zeile gelesen. Die PHP-Funktion fgets liest entweder bis zum Zeilenende, zum Dateiende oder bis zur übergebenen Länge (optionaler Parameter). Im Kopf der Schleife, überprüft die PHP-Funktion feof, ob das Dateiende bereits erreicht wurde.

1
2
3
4
5
6
7
8
<?php
$handle = fopen ("lesen.txt", "r");
while (!feof($handle)) {
    $buffer = fgets($handle);
    echo $buffer;
}
fclose ($handle);
?>

Datei komplett in ein Array lesen

Die PHP-Funktion file kann eine Datei an ein Array übergeben.
Das folgende Beispiel liest eine Datei in ein Array und gibt diese mit Hilfe einer foreach-Schleife aus:

1
2
3
4
5
6
7
<?php
$zeilen = file ('lesen.txt');
 
foreach ($zeilen as $zeile) {
    echo $zeile;
}
?>

Eine Textdatei ausgeben


Die PHP-Funktion readfile wird genutzt, wenn es darum geht eine Textdatei direkt auf einer Webseite anzuzeigen.

1
2
3
<?php
readfile ('lesen.txt');
?>



Tags: , , , , ,