Beschreibung
int
fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])
fopen() bindet eine benannte Resource, welche
mittels filename spezifiziert wurde, an einen
Stream. Hat filename die Form "schema://..."
wird angenommen, dass es sich hier um eine URL handelt und PHP sucht
nach einem Protokollhandler (auch als Wrapper bekannt) für dieses
Schema. Sind keine Wrapper für dieses Protokoll registriert, gibt
PHP als Hilfe zum Verfolgen potentieller Probleme in Ihrem Skript
einen Hinweis aus und setzt dann weiter fort, obwohl
filename eine reguläre Datei spezifiziert.
Ist PHP zu dem Schluss gekommen, dass filename
eine lokale Datei spezifiziert, wird es versuchen, einen Stream
an dieser Datei zu öffnen. Die Datei muss für PHP verfügbar sein,
weshalb Sie sicherstellen müssen, dass die Dateirechte diesen
Zugriff ermöglichen. Wenn Sie safe_mode oder open_basedir aktiviert haben,
können weitere Einschränkungen zutreffen.
Kam PHP zum Schluss, dass es sich bei filename
um ein registriertes Protokoll handelt, und ist dieses Protokoll
als eine Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist.
Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der
Aufruf von fopen wird scheitern.
Anmerkung:
Die Liste der unterstützten Wrapper finden Sie unter
Anhang I.
mode spezifiziert den von Ihnen gewünschten
Zugriffstyp auf den Stream, kann die folgenden Werte haben:
'r' - öffnet die Datei nur zum Lesen und positioniert den
Dateizeiger auf den Anfang der Datei.
'r+' - Öffnet die Datei zum Lesen und Schreiben und setzt den
Dateizeiger auf den Anfang der Datei.
'w' - Öffnet die Datei nur zum Schreiben und setzt den
Dateizeiger auf den Anfang der Datei sowie die Länge der Datei
auf 0 Byte. Wenn die Datei nicht existiert wird versucht sie
anzulegen.
'w+' - Öffnet die Datei zum Lesen und Schreiben und setzt den
Dateizeiger auf den Anfang der Datei sowie die Länge der Datei
auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie
anzulegen.
'a' - Öffnet die Datei nur zum Schreiben. Positioniert den
Dateizeiger auf das Ende der Datei. Wenn die Datei nicht
existiert, wird versucht sie anzulegen.
'a+' - Öffnet die Datei zum Lesen und Schreiben. Positioniert
den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht
existiert, wird versucht sie anzulegen.
Zusätzlich kann
mode der Buchstabe 'b'
hinzugefügt werden, der die Behandlung von Binär-Dateien
erlaubt. Dies ist nur auf Systemen sinnvoll, welche zwischen Binär-
und Text-Dateien unterscheiden (z.B. Windows. Ist bei Unix sinnlos).
Wenn das Feature nicht gebraucht wird, wird es einfach ignoriert.
Sie sollten den 'b' Flag verwenden, um Ihre Skripte portabler zu
machen.
Sie können den optionalen Parameter use_include_path
auf '1' oder TRUE setzten, wenn Sie die Datei auch im include_path suchen möchten.
Der optionale vierte Parameter zcontext wird
zur Spezifikation von Einstellungsparametern und Callbacks verwendet.
Scheitert das Öffnen der Datei, gibt die Funktion FALSE zurück.
Beispiel 1. fopen() <?php
$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.example.com/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");
?> |
|
Wenn Sie Probleme mit dem Lesen oder Schreiben von Dateien haben
und PHP als Servermodul benutzen, stellen Sie zunächst
sicher, dass die Dateien und Verzeichnisse die Sie benutzen
wollen auch für den Server-Prozess zugänglich sind
(Rechtevergabe).
Achten Sie auf Windows-Systemen darauf, dass Sie als
Verzeichnistrenner normale Schrägstriche '/' benutzen um
plattformunabhängig programmieren zu können. Sollten Sie dennoch
Backslashes verwenden, vergessen Sie nicht diese zu escapen '\\'
Siehe auch Anhang I,
fclose(),
fgets(),
fsockopen(),
file(),
file_exists(),
is_readable(),
socket_set_timeout() und
popen().