In diesem Tutorial wird das Lesen und Schreiben von
Dateien behandelt. D.h. die befehle fopen, fputs, fgets und
einige oft verwendete Routinen.
1. ?.ffnen und Lesen von
Dateien In diesem Teil wird das Lesen und Schreiben von Dateien
beschrieben. Nehmen wir mal an, dass wir eine Textdatei namens data.txt mit
folgendem Inhalt haben:
Hans,Meier,Meiserstr
D.h. Vorname, Nachname, Stra?.e. Aus dieser Datei
mchten wir nun gerne alle Vor- und Nachnamen auslesen und im Browser "sichtbar"
machen. Wir gehen dazu wie folgt vor:
$fp=fopen("data.txt","r"); //?.ffnen der Datei
data.txt while($line=fgets($fp,1000)) { // Auslesen und zurckgeben
der Datei $arr=explode(",",$line); echo
"Vorname: $arr[0] Nachname: $arr[1]"; }
Auf die einzelnen Funktionen werde ich sp?ter noch
eingehen. Schauen wir uns zun?chst nur folgenden Teil an:
$fp=fopen("data.txt","r");
Einige werden jetzt denken: Ist doch klar...Die
Datei data.txt wird geffnet. Aber was bedeutet der Teil "r"? Nun, in PHP gibt
es verschiedene Arten, sog. Attribute, um eine Datei zu ffnen. Wenn bei unserem
Beispiel die Datei data.txt nicht existiert, wird die Fehlermeldung
zurckgegeben: No such File or Directorie bzw. Failed opening data.txt Hier
nun eine Liste aller Attribute:
| Attribut |
Beschreibung |
| r |
?.ffnet eine Datei nur
zumLesen und setzt den Dateizeiger auf den Anfang der Datei. (das erste Zeichen
in der Datei) |
| r+ |
?.ffnet eine Datei zum
Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der
Datei |
| w |
?.ffnet eine Datei nur
zum Schreiben. Wenn die Datei nicht existiert, wird sie angelegt. Wenn die Datei
vorhanden ist und Daten enth?lt, werden diese gelscht und die L?nge wird auf 0
gesetzt. |
| a |
?.ffnet eine Datei nur
zum Schreiben. Wenn die Datei nicht existiert, wird sie angelegt. Vorhandene
Daten bleiben erhalten. Der Datenzeiger steht am Ende der Datei. (a steht fr
append, dt. anh?ngen) |
| a+ |
?.ffnet eine Datei zum
Schreiben und Lesen. Wenn die Datei nicht existiert, wird sie angelegt.
Vorhandene Daten bleiben erhalten. Der Datenzeiger steht am Ende der
Datei. | Nun aber
wieder zu unserem Beispiel. D.h. die Datei data.txt wird nur zum Lesen
geffnet. Schauen wir uns den n?chsten Teil an:
while($line=fgets($fp,1000)) { //
Auslesen und zurckgeben der Datei
$arr=explode(",",$line); echo "Vorname: $arr[0] Nachname:
$arr[1]"; }
$line=fgets($fp,1000); Hier
wird aus der geffneten Datei $fp (data.txt wird als
$fp=fopen("data.txt","r") geffnet) eine Zeile ausgelesen und in die Variable $line eingefgt. In unserem
Fall so: Hans,Meier,Meiserstr while($line=fgets($fp, 1000) { ...
} ist die bentigte
Schleife. Es wird solange der Vorgang in der Klammer aus gefhrt wie $line=fgets($fp,1000). D.h. solange die Variable $line
einen Wert hat.
$arr=explode(",",$line); explode trennt die Zeichenkette an der Stelle, an der ein
"," steht und schreibt sie in ein sog. Array. D.h. der erste Wert ist: Hans,
der zweite Meier. Ein Array kann natrlich auch abgefragt werden (recht
einfach). Den ersten Eintrag kann man wie folgt abrufen $arr[0]. Den zweiten mit $arr[1]. usw. Achtung Falle: Der erste Wert hat
nicht den Index 1!!
echo "Vorname $arr[0] Nachname
$arr[1]"; Gibt die Werte des Arrays (wie oben beschrieben
aus).
Um noch zus?tzlich die Stra?.e sichtbar zu machen, muss in den
echo-Befehl nur noch $arr[2] eingefgt werden.
2. Schreiben in Dateien Um in eine Datei
schreiben zu knnen, muss sie "schreibbar" geffnet werden (siehe ?.ffnen und
Lesen von Dateien). Es wird der Befehl fputs
verwendet um zu schreiben.
$fp=fopen("daten.txt","w"); fputs($fp,"Test");
Wrde
in die Datei daten.txt "Test" einfgen. Alle vorhandenen Daten werden gelscht,
wenn die Datei nicht existiert, wird sie angelegt. Kurz:
fpust(Datei,Wert);
Datei = Geffnete Datei (siehe oben)
|