Dateien lesen und schreiben
03.04.2007
Author: lukeelten
Bei schreiben in Dateien gibt es immer wieder noch Probleme.
Seit PHP 4.3.0 gibt es die Funktion
file_get_contents. Die Funktion file_put_contents erst seit PHP 5.
Sie erleichtern das Arbeiten mit Dateien. Die Benutzung ist denkbar einfach:
PHP - Code:
Wenn man mit file_put_contents etwas einer Datei hinzufügen möchte, muss man folgendes schreiben:
PHP - Code:
<?php
file_put_contents("datei.txt","Test 234", FILE_APPEND);
?>
Wenn man den letzten Parameter nicht angibt, überschreibt PHP den Inhalt der Datei (sofern einer da ist.)
Wer aber kein PHP 5 hat. Muss immer noch auf die alte Variante der Dateibeschreibung zurückgreifen.
Öffnen einer Datei mit fopen;
Sperren der Datei mit flock (nicht unbedingt notwendig);
Lesen einer Datei mit fread;
Schreiben in eine Datei mit fwrite oder fputs;
schließen einer Datei mit fclose;
Hier mal ein Beispiels:
PHP - Code:
<?php
$datei = fopen("datei.txt", "w");
flock(LOCK_EX);
fwrite($datei, "Test");
fputs($datei, " 234");
flock(LOCK_UN);
fclose($datei);
?>
Er erstellt nun eine leere Datei mit Namen datei.txt (Wenn diese Datei bereits existiert wird sie gelöscht und neu erstellt.) und schreibt den String Test 234 rein. Dann schließt er sie wieder. Falls man nicht will, das eine existierende Datei gelöscht wird, sondern der String einfach nur hintendran gehangen werden soll, dann öffnet man die Datei so:
PHP - Code:
Mit dem Aufruf wird der Datei der String am Ende angehängt.
Wenn man ihn aber am Anfang der Datei hinsetzen will muss man folgendes tun:
PHP - Code:
Und schon steht am Anfang der Datei "Dies ist ein ".
Wenn man nun alle diese Codes einmal ausführt müsste in der Datei am Ende stehen: "Dies ist ein Test 23456".
Wenn man eine Datei auslesen möchte kann man folgendes Benutzen:
PHP - Code:
<?php
$datei = fopen("datei.txt", "r");
$inhalt = fread($datei, filesize("datei.txt"));
fclose($datei);
?>
Die Datei wird nun ganz ausgelesen. Wenn man nur eine bestimmte Anzahl an Zeichen lesen möchte, ersetzt man einfach den Aufruf von filesize durch die Anzahl der zu lesenden Zeichen (Auch Leer und Punkte).
Wenn man nur eine Zeile lesen will kann man fgets die Zeile auslesen, in der ich der Zeiger grade befindet (Das ist, wenn man die Datei grade geöffnet hat, immer die erste).
Will man HTML-Codes entfernen kann man fgetss benutzen.
Wer mehr wissen will kann in der PHP Referenz nachschlagen.
http://www.php.net/manual/de/ref.filesystem.php
Deine Meinung ist gefragt:
Sei der Erste und teile uns Deine Meinung mit.
Kommentare