php 打包下载网络图片,php下载网络图片常用的方法

php下载网络图片常用的方法

发布时间:2020-05-13 15:34:16

来源:亿速云

阅读:127

作者:Leah

本篇文章展示了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下载网络图片常用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值