Beschreibung
resource
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.
Der Parameter mode spezifiziert den von Ihnen
gewünschten Zugriffstyp auf den Stream und kann die folgenden Werte haben:
Tabelle 1.
Liste von möglichen Modi für fopen()
mit mode
| mode | Beschreibung |
|---|
| '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.
|
Anmerkung:
Zusätzlich kann mode der Buchstabe 'b'
hinzugefügt werden, der die Behandlung von Binärdateien 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() Beispiele
<?php $handle = fopen ("/home/rasmus/file.txt", "r"); $handle = fopen ("/home/rasmus/file.gif", "wb"); $handle = fopen ("http://www.example.com/", "r"); $handle = fopen ("ftp://user:password@example.com/somefile.txt", "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().