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下载网络图片常用的三个方法总结_后端开发...相关推荐

  1. java json的使用方法_JAVA编写JSON常用的三种方法

    JAVA编写JSON常用的三种方法 Szx • 2019 年 11 月 15 日 1.jsonlib需要引入的包也多,代码也相对多一些. 2.Gson:谷歌的 3.FastJson:阿里巴巴的,这几个 ...

  2. 使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结

    下面来讲利用PHP下载网络图片常用的三个方法.当然,这三个方法都不是万能的,有时候会因为网络问题,或者网络图片的权限问题(大站一般都有防盗链)导致下载失败. 一起来看看吧,实际工作中经常用到. 方法一 ...

  3. 统计内表行数常用的三种方法

    以下是统计内表行数常用的三种方法, 如下:   1.LOOP AT it_itab.    g_lines2 = g_lines2 + 1.    ENDLOOP.    该方法是通过循环内部表自己累 ...

  4. php7 匿名继承类_PHP7中的匿名类使用方法_后端开发

    PHP 微服务集群搭建 - Hyperf_后端开发 Hyperf 是基于 Swoole 4.4+ 实现的高性能.高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-F ...

  5. php 删除数组的空元素,php删除数组空元素的方法_后端开发

    php如何实现自动跳转_后端开发 php实现自动跳转的方法:1.通过php内置函数"header",将http响应头中的"Location"设置为要跳转的URL ...

  6. php如何修改文件名,php修改文件名的实现方法_后端开发

    c++是什么意思_后端开发 C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计. php修改 ...

  7. php后端上传文件,php实现文件上传方法_后端开发

    python计算平均值_后端开发 python计算平均值的方法:1.首先提示用户输入数字:2.然后初始化sum总和的值:3.接着循环输入要计算平均数的数,并计算总和sum的值:4.最后利用公式[总和/ ...

  8. jQuery 发起 Ajax 请求最常用的三个方法

    浏览器中提供的 XMLHttpRequest 用法比较复杂,所以 jQuery 对 XMLHttpRequest 进行了封装,提供了一系列 Ajax 相关的函数,极大地降低了 Ajax 的使用难度. ...

  9. 文字转语音哪种方法比较好?试试这三个方法

    在自媒体领域工作时,制作短视频并为其配音是一个家常便饭的事情,但并非所有人都拥有成为声优的天赋.因此,许多人会选择使用一些文字转语音工具来为视频配音.那么,在众多的文字转语音软件中,哪些是比较好用的呢 ...

最新文章

  1. jQuery中的 $.ajax的一些方法
  2. 深度学习先驱Bengio:AI顶会论文的Deadline是时候取消了
  3. android 计算运动速度,android – 计算参考真北的加速度
  4. python自增_python – 类实例的自动递增ID
  5. 手机网络怎么共享给电脑_电脑没网络怎么回事?如何解决电脑没网络问题
  6. 神策营销云:「在线教育」行业,如何借“运营工具”玩转微信生态?
  7. 甘肃甘南步班邮递员:草原上的“递爱”艰途
  8. c4.5算法python实现_算法:用Python实现—最优化算法
  9. 依靠信用卡周转生活的人多吗?
  10. 祝贺VMware中文网站正式发布!
  11. 收集常用的.net开源项目
  12. Unity3d C#实现语音合成(TTS)试听并选择路径保存下载功能(含源码)
  13. 【备忘录】transformers tokenizer.tokenize和tokenizer.encode
  14. 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已开源于 Github)
  15. MATLAB/Simulink模型开发乐高EV3 双足平衡机器人
  16. Scratch软件编程等级考试四级——20210320
  17. 白鲸优化(BWO)算法(含MATLAB代码)
  18. 2022年全球与中国COB发光二极管行业发展趋势及投资战略分析报告
  19. 美国芯源系统(MPS)校招笔试经历
  20. es6转化es5普通html页面,JS语法转换-ES6转ES5

热门文章

  1. php 自动抢红包机制,用脚本实现自动抢红包
  2. linux动态监控机制
  3. jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
  4. 服务降级,限流,削峰
  5. 生活琐事(一)丢魂了
  6. 完美世界手游服务器维护中,完美世界手游黑屏闪退解决办法 玩不了怎么办
  7. Windows server 2012 R2添加桌面图标(计算机、控制面板、网络等)
  8. 雷曼另类“死因”:巴菲特漏看求救短信
  9. 餐饮管理系统哪个好用?
  10. unity之动画编辑器