Heim > Backend-Entwicklung > PHP-Tutorial > PHP implementiert das Herunterladen entfernter Bilder und deren lokales Speichern

PHP implementiert das Herunterladen entfernter Bilder und deren lokales Speichern

陈政宽~
Freigeben: 2023-03-11 18:54:01
Original
1503 Leute haben es durchsucht

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'
];
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

Dann können Sie beim Herunterladen von Remote-Bildern Folgendes tun:

foreach ( $images as $url ) {
  download($url);
}
Nach dem Login kopieren

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);
  }
}
Nach dem Login kopieren

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);
  }
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

Auf diese Weise ist das einfache Herunterladen von Bildern aus der Ferne in Ordnung.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich sein wird. Ich hoffe auch, dass jeder Script Home unterstützt.

Das obige ist der detaillierte Inhalt vonPHP implementiert das Herunterladen entfernter Bilder und deren lokales Speichern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage