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'); ?> |