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 Verbindung 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.
Ab PHP 4.3.0 (noch nicht freigegeben) können Sie eine HTTP Verbindung
über SSL mit "https://" verwenden, wenn Sie PHP mit Unterstützung für
OpenSSL kompiliert haben.
Beachten Sie, dass Ihnen der Dateizeiger nur den Empfang des
body aus der Antwort erlaubt. Um den HTTP
Antwortheader zu erhalten, benötigen Sie PHP ab Version 4.0.5. Die
Headers werden in der Variable $http_response_header gespeichert.
Ab PHP 4.3.0 (noch nicht freigegeben) kann die Header Information
mittels file_get_wrapper_data() geholt werden.
HTTP Verbindungen sind nur zum Lesen, d.h. Sie können keine Daten
schreiben oder Dateien an eine HTTP Ressource kopieren.
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 die
entfernte Datei bereits auf dem FTP-Server existiert und Sie
versuchen sie zum Schreiben zu öffnen, wird das nicht funktionieren.
Wenn Sie bestehende Dateien über FTP aktualisieren wollen, verwenden
Sie ftp_connect().
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:
'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 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.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 fclose(),
fsockopen(),
socket_set_timeout(), und
popen().