Solange die Option „allow_url_fopen“ in der php.ini-Datei aktiviert ist, können Sie in den meisten Funktionen, die Dateinamen als Parameter erfordern, HTTP- und FTP-URLs anstelle von Dateinamen verwenden. Gleichzeitig können URLs auch in den Anweisungen include, include_once, require und require_once verwendet werden. Weitere Informationen zu den von PHP unterstützten Protokollen finden Sie unter Unterstützte Protokolle und gekapselte Protokolle.
Hinweis:
Um das URL-Wrapping-Protokoll in PHP 4.0.3 und früheren Versionen zu verwenden, müssen Sie PHP zur Kompilierungszeit mit dem Parameter --enable-url-fopen-wrapper konfigurieren.
Die Windows-Version von PHP vor Version 4.3 unterstützt keinen Fernzugriff auf die folgenden Funktionen: include, include_once, require, require_once und die Funktion imagecreatefromXXX in GD- und Image-Funktionen.
Zum Beispiel können Sie das folgende Beispiel verwenden, um eine Datei auf einem Remote-Webserver zu öffnen, die erforderlichen Ausgabedaten zu analysieren und diese Daten dann beim Datenbankabruf zu verwenden, oder einfach den gleichen Stil wie andere Seiten auf verwenden Ihre Website gibt ihre Inhalte aus.
Beispiel #1 Den Titel einer Remote-Datei abrufen
<?php $file = fopen ("/", "r"); if (!$file) { echo "<p>Unable to open remote file.\n"; exit; } while (!feof ($file)) { $line = fgets ($file, 1024); /* This only works if the title and its tags are on one line */ if (eregi ("<title>(.*)</title>", $line, $out)) { $title = $out[1]; break; } } fclose($file); ?>
Wenn Sie über gesetzliche Zugriffsrechte verfügen und als Benutzer eine Verbindung zu einem FTP-Server herstellen, können Sie auch eine Anfrage an senden die FTP-Serverdatei für Schreibvorgänge. Diese Methode kann nur zum Erstellen neuer Dateien verwendet werden. Wenn Sie versuchen, eine vorhandene Datei zu überschreiben, schlägt der Aufruf der Funktion fopen() fehl.
Um mit einem anderen Benutzernamen als „anonym“ eine Verbindung zum Server herzustellen, müssen Sie den Benutzernamen (und möglicherweise das Passwort) angeben, z. B. „ftp://user:password@ftp.example.com/path“. /to/file ” (Die gleiche Syntax kann auch beim Zugriff auf Remote-Dateien über das HTTP-Protokoll verwendet werden, das eine Standardauthentifizierung erfordert).
Beispiel #2 Daten auf einem Remote-Server speichern
<?php $file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w"); if (!$file) { echo "<p>Unable to open remote file for writing.\n"; exit; } /* Write the data here. */ fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n"); fclose ($file); ?>
Hinweis:
Sie können sich vom obigen Beispiel inspirieren lassen und diese Technologie zum Speichern von Remote-Protokolldateien verwenden. Aber wie oben erwähnt, können in eine mit fopen() geöffnete URL nur neue Dateien geschrieben werden. Wenn die Remote-Datei bereits vorhanden ist, schlägt die Ausführung der Funktion fopen() fehl. Um etwas Ähnliches wie die verteilte Protokollierung durchzuführen, können Sie auf die Funktion syslog() zurückgreifen.