Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung von drei häufig verwendeten Methoden zum Herunterladen von Netzwerkbildern in PHP

Zusammenfassung von drei häufig verwendeten Methoden zum Herunterladen von Netzwerkbildern in PHP

齐天大圣
齐天大圣Original
2020-05-03 09:11:332849Durchsuche

Im Folgenden sind drei häufig verwendete Methoden zum Herunterladen von Online-Bildern mit PHP aufgeführt. Natürlich sind diese drei Methoden nicht allmächtig. Manchmal schlägt der Download aufgrund von Netzwerkproblemen oder Berechtigungsproblemen mit Online-Bildern fehl (große Websites verfügen im Allgemeinen über einen Anti-Leeching-Schutz).

Werfen wir einen Blick darauf, es wird häufig in der tatsächlichen Arbeit verwendet.

Methode 1

Vorteile: Einfach.

Nachteile: Relativ geringer Wirkungsgrad.

Die Hauptfunktionen, die bei dieser Methode verwendet werden, sind zwei: file_get_contents und file_put_contents Diese Methode ist für den Laien sehr einfach: Zuerst wird der Bildinhalt abgerufen und dann in die Datei eingefügt.

Der Code lautet wie folgt:

<?php
$imgFile = &#39;http://***.***.***/Uploads/20200424/1587710975CZlGeB.jpg&#39;;
// 获取文件名
$imgName = trim(strrchr($imgFile, &#39;/&#39;), &#39;/&#39;);
file_put_contents($imgName, file_get_contents($imgFile));

Methode 2

Die von Einzelpersonen am häufigsten verwendete Methode.

Nachteile: Etwas komplizierter. Um die Verwendung von curl zu beherrschen, müssen Sie die Bedeutung einiger Curl-Optionen kennen.

Vorteile: hohe Effizienz, einfache Unterstützung von https

Curl ist sehr leistungsfähig und eine Fähigkeit, die PHPer beherrschen muss, daher wird jedem empfohlen, diese Methode zu verwenden. Die Idee dieser Methode besteht darin, das Curl-Tool zu verwenden, um die Informationen des Remote-Bildes abzurufen und diese Informationen dann in einer lokalen Datei zu speichern. Ich habe die Ergebnisse von curl_exec hier nicht überprüft, nur um faul zu sein.

Wenn Sie mehr über die Verwendung von Curl erfahren möchten, können Sie auf der chinesischen PHP-Website nach Curl suchen.

$imgFile = &#39;https://***.***.***/uploads/20200121/bd873d80da430f8b74ef1ee751945595.png&#39;;
function down_img($imgUrl)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $imgUrl);    // 请求地址
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // 不直接输出信息
    // 可以访问https请求
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    // 执行curl并获取数据
    $results = curl_exec($ch);
    $imgName = trim(strrchr($imgUrl, &#39;/&#39;), &#39;/&#39;);
    $fp = fopen($imgName, &#39;w&#39;);
    fwrite($fp, $results);
      // 执行完毕后,记得关闭资源
    curl_close($ch);
}
down_img($imgFile);

Methode 3

Diese Methode ist ebenfalls sehr einfach und nutzt PHP-Dateiverwaltungskenntnisse. Erstellen Sie zunächst zwei Dateihandles, eines zum Lesen der Binärinformationen des Remote-Images und das andere zum Speichern der Bildinformationen.

<?php
$imgFile = &#39; 
$imgName = trim(strrchr($imgFile, &#39;/&#39;), &#39;/&#39;);

// 读取远程图片资源
$source = fopen($imgFile, &#39;rb&#39;);
// 创建本地文件资源句柄,用于保存图片信息
$down   = fopen($imgName, &#39;wb&#39;);

while ($chunk = fread($source,1024)){
    fwrite($down, $chunk, 1024);
}
fclose($source);
fclose($down);

Zusammenfassung

Die erste und zweite Methode unten werden hauptsächlich in der persönlichen Arbeit verwendet. Noch etwas: Das Herunterladen von Bildern spielt keine Rolle, aber Sie sollten darauf achten, wie Sie die heruntergeladenen Bilder verwenden. Bei falscher Verwendung kann es zu Urheberrechtsverletzungen kommen.

Das obige ist der detaillierte Inhalt vonZusammenfassung von drei häufig verwendeten Methoden zum Herunterladen von Netzwerkbildern in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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