百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> php下载网络图片常用的三个办法总结
分享文章到:

php下载网络图片常用的三个办法总结

发布时间:09/01 来源:未知 浏览: 关键词:
下面来讲利用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下载网络图片常用的三个办法总结的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板