Datei schreiben
Datei schreiben
Im Folgenden sehen wir, wie man Daten in eine Datei (file) schreibt.
Das folgende PHP-Skript ist ein einfaches Beispiel dafür:
<?php
|
Auch wenn die einzelnen Kommandos in dem Skript bereits erklärt sind, wollen wir uns die darin verwendeten Funktionen im Detail anschauen:
fopen()
Mit fopen() öffnet man eine Datei und zwar je nach Parameter in verschiedenen Modi , wie zum Beispiel Lesen oder Schreiben.
int fopen(string filename, string modus) |
Als Dateiname "filename" kann sowohl ein Dateiname mit oder ohne Pfad verwendet werden oder auch eine Datei, die sich irgendwo im Internet befindet, also "http://www.problem-hilfe.de/linux/h/PHP/Datei_schreiben.html". Im Internet befindliche Dateien können natürlich in der Regel nur lesend und nicht schreibend geöffnet werden.
Für den Modus gibt es viele verschiedene Möglichkeiten, die in der folgenden Tabelle zusammengestellt sind:
| w | Die angegebene Datei wird zum Schreiben geöffnet und falls die Datei bereits existiert, wird der alte Inhalt überschrieben, d.h. gelöscht. Anders ausgedrückt: Mit der Option "w" wird der Dateizeiger auf den Anfang der Datei gesetzt und die Länge der Datei auf 0 (also 0 Bytes) gesetzt. Existiert die Datei nicht, wird sie angelegt. Letzteres allerdings nur, wenn das Skript Schreibberechtigung in dem Verzeichnis hat, in das die Datei geschrieben werden soll. |
| a | Es gilt das für die Option "w" gesagte. Einen Unterschied gibt es nur, falls die Datei bereits existiert. Dann werden die Daten ans Ende der Datei angehängt, d.h. der Dateizeiger wird ans Ende des Files gesetzt. |
| r | Die angegebene Datei wird zum Lesen geöffnet. Der Dateizeiger - anderes würde wohl keinen Sinn ergeben - wird an den Anfang des Files gesetzt. |
| r+ | Die angegebene Datei wird zum Lesen und Schreiben geöffnet. Der Dateizeiger wird an den Anfang des Files gesetzt. Existiert die Datei nicht, wird sie nicht angelegt! |
| w+ | Wie r+, allerdings wird versucht eine nicht existierende Datei anzulegen. |
| a+ | Wie w+, allerdings wird der Dateizeiger an das Ende des Files gesetzt. |
Beispiele für fopen():
$fp = fopen("beispiel_daten.txt", "r") // Dateiname ohne Pfad bzw. relativer Pfad
$fp = fopen("/home/tux/beispiel_daten.txt", "r") // Dateiname mit abslutem Pfad$fp = fopen("http://www.was-weiss-ich-domain.de/beispiel.txt", "r") // Datei befindet sich im Internet |
fwrite()
Mit dem Befehl fwrite() kann man Daten in eine Datei schreiben, die vorher mit fopen() geöffnet wurde.
int fwrite(int fp, string daten [,int laenge]) |
"fp" bezeichnet den Dateizeiger (file pointer) der als Rückgabewert von fopen() geliefert wird. In den obigen Beispielen wurde er der Variablen $fp zugewiesen.
"daten" ist ein String in dem die zu schreibenden Daten stehen. Man kann optional, d.h. wenn man will, eine Länge "laenge" angeben. Damit sagt man, dass der String "daten" nur bis maximal laenge-Bytes in die Datei geschrieben wird.
fclose()
Jede Datei, die zuvor mit fopen() geöffnet worden ist, muss vor dem Ende des Skriptes mit fclose() geschlossen werden.
int fclose(int fp) |
Einziger Parameter des fclose()-Befehls ist der Dateizeiger fp.
Funktion zum Schreiben eines Array-Inhaltes in eine Datei
Wir stellen nun eine Funktion vor, mit der man ein komplettes Array in eine Datei schreiben kann:
<?
|
Wichtig: Das Verzeichnis, in das "test.txt" geschrieben werden soll, muss die entsprechende Schreibberechtigung haben!
hat dir dieser Artikel gefallen?
Zu diesem Artikel wurden noch keine Kommentare geschrieben.
Leave a comment
Du musst angemeldet sein, um einen Kommentar abzugeben.
Noch keine Trackbacks.










