Bild von externer URL speichern

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!

Schreibe einen Kommentar