Inhalt

Bild von externer URL speichern

Inhalt

Hin und wieder hat man das Bedürfnis oder aber die Aufgabe, Bilder von bekannten URLs auf dem eigenen Rechner / Server zu speichern. Mit PHP gelingt dies relativ einfach und bequem. Folgende Utility-Klasse zeigt, wie es gehen könnte.

class Utility {
    static public function getRemoteImage($url, $fileName) {
        // Hole das Bild von der URL
        $imageData = file_get_contents($url);

        // Erzeuge eine neue Datei auf dem Webserver
        // Das Zielverzeichnis muss für den Webserver-Benutzer beschreibbar sein
        $fileHandle = fopen($fileName, "w");
        fwrite($fileHandle, $imageData);
        fclose($fileHandle);
    }
}

Um das Bild jetzt zu speichern, genügt nach Einbinden der Klasse folgender Aufruf:

require_once 'class.Utility.php';
Utility::getRemoteImage("http://www.example.com/picture.jpg","picture.jpg");

Was man letzten Endes speichert, bleibt sich relativ egal. Es können Binärdaten und Textdaten gleichermaßen gespeichert werden. Damit das Ganze funktioniert, muss in der Server/Host-Konfiguration mindestens allow_url_fopen auf on stehen. Die Funktionalität ist natürlich auf das Nötigste beschränkt.

Viel Spaß beim Ausprobieren und Erweitern!