php下载网络图片常用的三个办法总结
发布时间:09/01 来源:未知 浏览:
关键词:
一起来看看吧,实际工作中经常用到。
办法一
长处:简便。
缺陷:效力相对较低。
该办法主要用到的函数有两个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下载网络图片常用的三个办法总结的具体内容,更多请关注百分百源码网其它相关文章!