使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结_后端开发...
php文件锁产生的问题和解决方案(一个真实案例)_后端开发
一个真实案例想起自己之前犯过一个相关的错误。当时场景是这样的:有一个微信公众号项目,调用微信公众号的接口都需要access_token,它的有效期是2小时。下面来讲利用PHP下载网络图片常用的三个方法。当然,这三个方法都不是万能的,有时候会因为网络问题,或者网络图片的权限问题(大站一般都有防盗链)导致下载失败。
一起来看看吧,实际工作中经常用到。
方法一
优点:简单。
缺点:效率相对较低。
该方法主要用到的函数有两个file_get_contents以及file_put_contents这种方法非常简单,通俗的讲就是先get到图片内容,然后put到文件中。
代码如下:
$imgFile = 'http://***.***.***/Uploads/20200424/1587710975CZlGeB.jpg';
// 获取文件名
$imgName = trim(strrchr($imgFile, '/'), '/');
file_put_contents($imgName, file_get_contents($imgFile));
方法二
个人用的最多的方法。安装chrome并通过selenium实现快手自动弹幕_后端开发
使用python的selenium包实现快手自动弹幕过程:一、准备chrome浏览器,对应版本的webdriver驱动;二、python安装selenium包;三、在chrome中登录快手分析发弹幕的过程;四、代码实现;五、运行
缺点:稍微复杂点,要掌握curl的用法,需要知道curl一些选项的含义。
优点:效率高,很容易支持https;
curl非常强大,也是phper必须掌握的技能,所以建议大家使用该方法。该方法的思路是,使用curl工具获取远程图片的信息,然后将该信息保存到本地的文件中。这里我没有对curl_exec的结果做校验了,偷个懒。
关于curl的用法,如果有想深入了解的,可以在ki4网中搜索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的文件管理知识。首先创建两个文件句柄,一个用于读取远程图片的二进制信息,另一个用于保存图片信息的。
$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下载网络图片常用的三个方法总结_后端开发...相关推荐
- java json的使用方法_JAVA编写JSON常用的三种方法
JAVA编写JSON常用的三种方法 Szx • 2019 年 11 月 15 日 1.jsonlib需要引入的包也多,代码也相对多一些. 2.Gson:谷歌的 3.FastJson:阿里巴巴的,这几个 ...
- 使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结
下面来讲利用PHP下载网络图片常用的三个方法.当然,这三个方法都不是万能的,有时候会因为网络问题,或者网络图片的权限问题(大站一般都有防盗链)导致下载失败. 一起来看看吧,实际工作中经常用到. 方法一 ...
- 统计内表行数常用的三种方法
以下是统计内表行数常用的三种方法, 如下: 1.LOOP AT it_itab. g_lines2 = g_lines2 + 1. ENDLOOP. 该方法是通过循环内部表自己累 ...
- php7 匿名继承类_PHP7中的匿名类使用方法_后端开发
PHP 微服务集群搭建 - Hyperf_后端开发 Hyperf 是基于 Swoole 4.4+ 实现的高性能.高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-F ...
- php 删除数组的空元素,php删除数组空元素的方法_后端开发
php如何实现自动跳转_后端开发 php实现自动跳转的方法:1.通过php内置函数"header",将http响应头中的"Location"设置为要跳转的URL ...
- php如何修改文件名,php修改文件名的实现方法_后端开发
c++是什么意思_后端开发 C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计. php修改 ...
- php后端上传文件,php实现文件上传方法_后端开发
python计算平均值_后端开发 python计算平均值的方法:1.首先提示用户输入数字:2.然后初始化sum总和的值:3.接着循环输入要计算平均数的数,并计算总和sum的值:4.最后利用公式[总和/ ...
- jQuery 发起 Ajax 请求最常用的三个方法
浏览器中提供的 XMLHttpRequest 用法比较复杂,所以 jQuery 对 XMLHttpRequest 进行了封装,提供了一系列 Ajax 相关的函数,极大地降低了 Ajax 的使用难度. ...
- 文字转语音哪种方法比较好?试试这三个方法
在自媒体领域工作时,制作短视频并为其配音是一个家常便饭的事情,但并非所有人都拥有成为声优的天赋.因此,许多人会选择使用一些文字转语音工具来为视频配音.那么,在众多的文字转语音软件中,哪些是比较好用的呢 ...
最新文章
- jQuery中的 $.ajax的一些方法
- 深度学习先驱Bengio:AI顶会论文的Deadline是时候取消了
- android 计算运动速度,android – 计算参考真北的加速度
- python自增_python – 类实例的自动递增ID
- 手机网络怎么共享给电脑_电脑没网络怎么回事?如何解决电脑没网络问题
- 神策营销云:「在线教育」行业,如何借“运营工具”玩转微信生态?
- 甘肃甘南步班邮递员:草原上的“递爱”艰途
- c4.5算法python实现_算法:用Python实现—最优化算法
- 依靠信用卡周转生活的人多吗?
- 祝贺VMware中文网站正式发布!
- 收集常用的.net开源项目
- Unity3d C#实现语音合成(TTS)试听并选择路径保存下载功能(含源码)
- 【备忘录】transformers tokenizer.tokenize和tokenizer.encode
- 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已开源于 Github)
- MATLAB/Simulink模型开发乐高EV3 双足平衡机器人
- Scratch软件编程等级考试四级——20210320
- 白鲸优化(BWO)算法(含MATLAB代码)
- 2022年全球与中国COB发光二极管行业发展趋势及投资战略分析报告
- 美国芯源系统(MPS)校招笔试经历
- es6转化es5普通html页面,JS语法转换-ES6转ES5