PHP Handbuch
Zurück |  | Weiter

# fopen

(PHP 3, PHP 4, PHP 5)

fopen -- Öffnet eine Datei oder URL

## 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 N.

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 '\\'

`<?php $handle = fopen ("c:\\data\\info.txt", "r"); ?>`

Siehe auch Anhang N, fclose(), fgets(), fsockopen(), file(), file_exists(), is_readable(), socket_set_timeout() und popen().

Zurück | Zum Anfang | Weiter
fnmatch | Nach oben | fpassthru