Der Umgang mit Dateien in PHP
Der Umgang mit Dateien ist in PHP einfacher als viele denken. Wenn man das Prinzip einmal verstanden hat, ist es ist mehr nicht wirklich kompliziert aus Dateien zu lesen, Daten anzuhängen oder zu überschreiben.
Eine Datei muss zuallererst geöffnet werden, unabhängig davon ob wir nur lesen oder auch schreiben wollen. Dies geschieht mittels des Befehls "fopen".
Die Syntax lautet:
<?php $datei = fopen(Dateiname, Modus); ?>
Wie man sieht, muss noch ein Parameter benannt werden, der den Modus angibt, in dem die Datei geöffnet werden soll:
- Modus "r": Öffnet die Datei nur zum Lesen, der Dateizeiger wird auf den Anfang der Datei gesetzt, Datei muss vorhanden sein
- Modus "r+": Öffnet die Datei zum Lesen und Schreiben, Dateizeiger wird auf den Anfang der Datei gesetzt, Datei muss vorhanden sein
- Modus "w": Öffnet die Datei nur zum Schreiben, Dateizeiger wird auf den Anfang der Datei gesetzt, sofern die Datei bereits besteht, wird sie überschrieben. Sofern die Datei nicht existiert, wird diese neu angelegt.
- Modus "w+": Öffnet die Datei zum Lesen und Schreiben, der Dateizeiger wird auf den Anfang der Datei gesetzt, sofern die Datei bereits besteht, wird sie überschrieben. Sofern die Datei nicht existiert, wird diese neu angelegt.
- Modus "a": Öffnet die Datei nur zum Schreiben, der Dateizeiger wird an das Ende der Datei gesetzt (vorhandener Inhalt wird nicht überschrieben, sondern neuer Inhalt am Dateiende hinzugefügt). Sofern die Datei nicht existiert, wird diese neu angelegt.
- Modus "a+": Öffnet die Datei zum Lesen und Schreiben, der Dateizeiger wird an das Ende der Datei gesetzt (vorhandener der Inhalt wird nicht überschrieben, sondern neuer Inhalt am Dateiende hinzugefügt). Sofern die Datei nicht existiert, wird diese neu angelegt.
Wie man sehen kann, gibt es für quasi jeden Verwendungszweck einen eigenen Modus. Vorsichtig muss man natürlich bei w und w+ sein, da hier vorhander Inhalt ohne Warnung überschrieben wird. Mit Dateizeiger ist schlicht die Position gemeint, an der mit der Lese oder Schreibarbeit begonnen werden soll - eben am Anfang oder am Ende der geöffneten Datei.
Nachdem die Datei mit fopen geöffnet ist, muss natürlich noch ein entsprechender Schreib- oder Lesebefehl gesendet werden und die Datei abschließend wieder geschlossen werden. Auch wenn es anfangs kompliziert klingt, lässt es sich mit einigen Beispielen am besten verstehen.
Beispiel 1: Wir möchten eine Zeile Text aus einer Datei lesen und anzeigen lassen.
<?php $datei = fopen("beispiel.txt","r+"); echo fgets($datei); fclose($datei); ?>
Der Befehl fgets dient zum zeilenweisen Auslesen einer Datei, der Befehl fclose schließt sie wieder. Beispiel 1 bewirkt also, dass die erste Zeile der Datei beispiel.txt am Bildschirm angezeigt wird.
Beispiel 2: Wir möchten einen Text an eine vorhandene Datei anhängen:
<?php $datei = fopen("beispiel.txt","a"); fwrite($datei,"Beispieltext"); fclose($datei); ?>
Dies bewirkt, dass der "Beispieltext" an die vorhandene Datei angehängt wird.