Heim > Artikel > Backend-Entwicklung > Detailliertes Beispiel für das Herunterladen von Remote-Bildern und das lokale Speichern dieser in PHP
In diesem Artikel wird hauptsächlich die Methode zum Herunterladen von Remote-Bildern in PHP vorgestellt. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf
Bei der Verwendung von PHP zum Erstellen eines einfachen Crawlers müssen wir häufig Remote-Bilder herunterladen. Implementieren wir diese Anforderung also einfach.
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 das Bild herunterzuladen:
$spider = new Spider(); foreach ( $images as $url ) { $spider->downloadImage($url); }
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für das Herunterladen von Remote-Bildern und das lokale Speichern dieser in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!