上面来说行使PHP下载网络图片罕用的三个办法。当然,这三个办法都没有是全能的,有时分会由于网络成绩,或许网络图片的权限成绩(年夜站普通都有防盗链)招致下载失败。
一同来看看吧,实际工作中常常用到。
办法一
优点:简略。
缺陷:效率绝对较低。
该办法次要用到的函数有两个file_get_contents
和file_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开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!