Heim > Artikel > Backend-Entwicklung > PHP lädt Remote-Bilder herunter und speichert sie im lokalen Code
Wenn wir PHP verwenden, um einen einfachen Crawler zu erstellen, stoßen wir häufig auf die Notwendigkeit, Remote-Bilder herunterzuladen, also implementieren wir diese Anforderung einfach. Der Artikel stellt Ihnen hauptsächlich die Methode zum Herunterladen von Remote-Bildern in PHP vor. Jetzt teile ich sie mit Ihnen und hoffe, dass sie Ihnen helfen kann.
1. Curl verwenden
Zum Beispiel haben wir die folgenden zwei Bilder:
$images = [ 'https://dn-laravist.qbox.me/2015-09-22_00-17-06j.png', 'https://dn-laravist.qbox.me/2015-09-23_00-58-03j.png' ];
Im ersten Schritt haben wir kann direkt So verwenden Sie die einfachste Code-Implementierung:
function download($url, $path = 'images/') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resource); }
Dann können Sie beim Herunterladen von Remote-Bildern Folgendes tun:
foreach ( $images as $url ) { download($url); }
2. Kapseln Sie eine Klasse
Nachdem wir die Idee geklärt haben, können wir diese Grundfunktion in einer Klasse kapseln:
class Spider { public function downloadImage($url, $path = 'images/') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resource); } }
Jetzt können wir sie auch ein wenig optimieren, so:
public function downloadImage($url, $path='images/') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); $file = curl_exec($ch); curl_close($ch); $this->saveAsImage($url, $file, $path); } private function saveAsImage($url, $file, $path) { $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resource); }
Nachdem wir es in eine Klasse gekapselt haben, können wir den Code wie folgt aufrufen, um Bilder herunterzuladen:
$spider = new Spider(); foreach ( $images as $url ) { $spider->downloadImage($url); }
Auf diese Weise ist das einfache Herunterladen von Bildern aus der Ferne in Ordnung.
Verwandte Empfehlungen:
HP implementiert eine effiziente Methode, um die Größe und Größe von Remote-Images zu ermitteln
Entwicklungsbeispiel für das Herunterladen von PHP aus der Ferne Bilder zum lokalen Teilen
So verwenden Sie PHP, um entfernte Bilder im lokalen Bereich zu sammeln
Das obige ist der detaillierte Inhalt vonPHP lädt Remote-Bilder herunter und speichert sie im lokalen Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!