User Online: 1

   Dateien mit fopen by sven-oliver
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)

© by Sven-Oliver Tröbs - 2000-2008 - http://www.php-area.de/



Login





[ Registrieren ]