php下载网络图片常用的三个方法总结-php教程

资源魔 25 0
上面来说行使PHP下载网络图片罕用的三个办法。当然,这三个办法都没有是全能的,有时分会由于网络成绩,或许网络图片的权限成绩(年夜站普通都有防盗链)招致下载失败。

一同来看看吧,实际工作中常常用到。

办法一

优点:简略。

缺陷:效率绝对较低。

该办法次要用到的函数有两个file_get_contentsfile_put_contents这类办法十分简略,浅显的讲就是先get到图片内容,而后put到文件中。

代码以下:

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

办法二

集体用的最多的办法。

缺陷:略微复杂点,要把握curl的用法,需求晓得curl一些选项的含意。

优点:效率高,很容易支持https;

curl十分弱小,也是phper必需把握的技艺,以是倡议各人应用该办法。该办法的思绪是,应用curl对象猎取近程图片的信息,而后将该信息保留到内陆的文件中。这里我不对curl_exec的后果做校验了,偷个懒。

对于curl的用法,假如有想深化理解的,能够正在资源魔中搜寻curl。

$imgFile = 'https://***.***.***/uploads/20200121/bd873d80da430f8b74ef1ee751945595.png';
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, '/'), '/');
    $fp = fopen($imgName, 'w');
    fwrite($fp, $results);
      // 执行终了后,记患上封闭资本
    curl_close($ch);
}
down_img($imgFile);

办法三

这类办法也很简略,用到的是php的文件治理常识。起首创立两个文件句柄,一个用于读取近程图片的二进制信息,另外一个用于保留图片信息的。

<?php
$imgFile = ' 
$imgName = trim(strrchr($imgFile, '/'), '/');

// 读取近程图片资本
$source = fopen($imgFile, 'rb');
// 创立内陆文件资本句柄,用于保留图片信息
$down   = fopen($imgName, 'wb');

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

总结

集体工作中次要用到了下列的第一种落第二种办法。另外多说一句,图片下载倒没甚么关系,然而下载的图片怎样用就要留意了。用的欠好,就可能孕育发生侵权成绩了哦。

以上就是php下载网络图片罕用的三个办法总结的具体内容,更多请存眷资源魔其它相干文章!

标签: php 图片 php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!