fopen

(PHP 3, PHP 4 >= 4.0.0)

fopen -- Öffnet eine Datei oder URL

Beschreibung

int fopen (string filename, string mode [, int use_include_path])

Wenn filename mit "http://" (nicht case sensitive) beginnt, wird zu dem spezifiziertem Server eine HTTP 1.0 Connection geöffnet, die Seite mittels der HTTP GET Methode angefordert, und ein Dateizeiger auf den Anfang des Textes der Antwort zurückgegeben. Ein 'Host:' header wird mit der Anfrage geschickt, um namens-basierte Virtual Hosts zu verarbeiten.

Beachten Sie, dass Ihnen der Dateizeiger nur den Empfang des body aus der Antwort erlaubt; mit dieser Funktion können Sie auf den HTTP response header nicht zugreifen.

In älteren Versionen als PHP 4.0.5 werden Weiterleitungen (HTTP Redirects) nicht unterstützt, hier muss die Datei daher vollständig und mit abschließendem "/" beschrieben werden.

Wenn filename mit "ftp://" (nicht case sensitive) beginnt, wird eine ftp-Connection zu dem spezifizierten Server geöffnet und ein Zeiger auf die angeforderte Datei zurückgegeben. Wenn der Server keinen passiven FTP-Modus unterstützt, wird diese Methode fehlschlagen. Sie können Dateien entweder zum Schreiben oder zum Lesen öffnen, jedoch nicht für beides gleichzeitig.

Wenn filename "php://stdin", "php://stdout", oder "php://stderr" ist, wird der korrespondierende stdio stream geöffnet (Feature wurde in Version 3.0.13 eingeführt, in früheren Versionen muss der Dateiname wie z.B. "/dev/stdin" oder "/dev/fd/0" benutzt werden, um auf die stdio streams zuzugreifen).

Wenn filename mit irgendetwas anderem beginnt, wird die Datei vom lokalen Dateisystem geöffnet und ein Dateizeiger auf die geöffnete Datei zurückgegeben.

Wenn das Öffnen scheitert, gibt die Funktion FALSE zurück.

mode kann einen der folgenden Werte einnehmen:

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 können optional ein dritten Parameter benutzen und diesen auf '1' setzten, wenn Sie auch im include_path nach der Datei suchen möchten.

Beispiel 1. fopen()


$fp = fopen ("/home/simi/simi.txt", "r");
$fp = fopen ("/home/simi/simi.gif", "wb");
$fp = fopen ("http://www.php.net/", "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-Prozeß 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 '\\'

 
$fp = fopen ("c:\\data\\info.txt", "r");
      

Siehe auch fclose(), fsockopen(), socket_set_timeout(), und popen().