Maison  >  Article  >  développement back-end  >  Résumé de trois méthodes couramment utilisées pour télécharger des images réseau en PHP

Résumé de trois méthodes couramment utilisées pour télécharger des images réseau en PHP

齐天大圣
齐天大圣original
2020-05-03 09:11:332743parcourir

Voici trois méthodes couramment utilisées pour télécharger des images en ligne à l'aide de PHP. Bien entendu, ces trois méthodes ne sont pas omnipotentes. Parfois, le téléchargement échoue en raison de problèmes de réseau ou de problèmes d’autorisation avec les images en ligne (les grands sites disposent généralement d’une protection anti-sangsue).

Jetons un coup d'oeil, il est souvent utilisé dans le travail réel.

Méthode 1

Avantages : Simple.

Inconvénients : Efficacité relativement faible.

Les principales fonctions utilisées dans cette méthode sont au nombre de deux : file_get_contents et file_put_contents. Cette méthode est très simple, cela signifie d'abord obtenir le contenu de l'image, puis le mettre dans le fichier.

Le code est le suivant :

<?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));

Méthode 2

La méthode la plus couramment utilisée par les particuliers.

Inconvénients : Un peu plus compliqué. Pour maîtriser l'utilisation de curl, il faut connaître la signification de certaines options de curl.

Avantages : haute efficacité, facile à prendre en charge https ;

curl est très puissant et est une compétence que PHPer doit maîtriser, il est donc recommandé à tout le monde d'utiliser cette méthode. L'idée de cette méthode est d'utiliser l'outil curl pour obtenir les informations de l'image distante, puis de sauvegarder les informations dans un fichier local. Je n'ai pas vérifié les résultats de curl_exec ici, juste par paresseux.

Concernant l'utilisation de curl, si vous souhaitez en savoir plus, vous pouvez rechercher curl sur le site PHP chinois.

$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);

Méthode 3

Cette méthode est également très simple et utilise les connaissances en gestion de fichiers PHP. Créez d’abord deux descripteurs de fichiers, l’un pour lire les informations binaires de l’image distante et l’autre pour enregistrer les informations de l’image.

<?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);

Résumé

Les première et deuxième méthodes ci-dessous sont principalement utilisées dans le travail personnel. De plus, je voudrais dire que le téléchargement d'images n'a pas d'importance, mais vous devez faire attention à la manière d'utiliser les images téléchargées. En cas d'utilisation incorrecte, des problèmes de contrefaçon peuvent survenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn