Zugriff auf entfernte Dateien

Wenn allow_url_fopen in der php.ini aktiviert ist, können HTTP- und FTP-URLs bei den meisten Funktionen verwendet werden, die einen Dateinamen als Parameter benötigen. Darüber hinaus können URLs in include-, include_once-, require- und require_once-Anweisungen verwendet werden (allow_url_include muss dafür aktiviert sein). Weitere Informationen zu den Protokollen, die von PHP unterstützt werden, finden Sie im Abschnitt Unterstützte Protokolle und Wrapper.

Beispielsweise kann damit eine Datei auf einem anderen Webserver geöffnet und nach benötigten Daten analysiert werden. Diese Daten können zur Abfrage einer Datenbank verwendet werden oder passend zum Rest der eigenen Website ausgegeben werden.

Beispiel #1 Den Titel einer entfernten Seite auslesen

<?php
$datei 
fopen ("http://www.example.com/""r");
if (!
$datei) {
    echo 
"<p>Datei konnte nicht geöffnet werden.\n";
    exit;
}
while (!
feof ($datei)) {
    
$zeile fgets ($datei1024);
    
/* Funktioniert nur, wenn Titel und title-Tags in einer Zeile stehen */
    
if (preg_match ("@\<title\>(.*)\</title\>@i"$zeile$treffer)) {
        
$title $treffer[1];
        break;
    }
}
fclose($datei);
?>

Auch eine Datei auf einem FTP-Server kann geschrieben werden, vorausgesetzt man ist als Benutzer mit entsprechenden Zugriffsrechten angemeldet. Auf diesem Weg können nur neue Dateien angelegt werden. Falls Sie versuchen eine schon existierende Datei zu überschreiben, wird der fopen()-Aufruf fehlschlagen.

Um sich statt als 'anonymous' als anderer Benutzer anzumelden, muss ein Benutzername (und möglicherweise ein Passwort) innerhalb der URL angegeben werden, z. B. 'ftp://benutzer:passwort@ftp.example.com/pfad/zur/datei'. Dieselbe Syntax kann verwendet werden, um auf Dateien via HTTP zuzugreifen, wenn diese eine Basic-Authentifizierung benötigen.

Beispiel #2 Daten auf einen entfernten Server speichern

<?php
$datei 
fopen ("ftp://ftp.example.com/incoming/outputfile""w");
if (!
$datei) {
    echo 
"<p>Datei konnte nicht zum schreiben geöffnet werden.\n";
    exit;
}
/* Schreibe die Daten hier hin. */
fputs ($datei$_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($datei);
?>

Hinweis:

Obiges Beispiel könnte dazu verleiten, dieses Verfahren zu verwenden, um in eine entfernte Log-Datei zu schreiben. Das würde aber leider nicht funktionieren, weil der fopen()-Aufruf fehlschlagen würde, wenn die entfernte Datei bereits existiert. Für eine dezentralisierte Protokollierung sollten Sie sich die Funktion syslog() anschauen.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Probleme mit speichern in Datenbank in französisch

We all understand the importance of education and investment in young children. slope 3 (https://slope3online.io)

Geschrieben von xagey am 20.01.2025 09:54:31
Forum: PHP Developer Forum
Benutzt jemand PHPRUNNER ?

Danke aber das hat sich seit 2021 erledigt

Geschrieben von ffw112 am 16.01.2025 20:29:21
Forum: Off-Topic Diskussionen
mit Pivot beginnne: Wie anfangen...

Hallo u. guten Tag liebe Community, vorweg: ich hoffe, dass ich nun diese Frage in das richtige Sub-Forum schreibe. ich bin eigentlich ganz gut ...

Geschrieben von Gast am 16.01.2025 15:47:29
Forum: Linux und Unix