位置: 编程技术 - 正文

php使用curl下载指定大小的文件实例代码(php curl_exec)

编辑:rootadmin

推荐整理分享php使用curl下载指定大小的文件实例代码(php curl_exec),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php下载url文件,php curl 下载文件,php curl_setopt,php安装curl扩展,php curl_init,php安装curl扩展,php安装curl扩展,php curl下载,内容如对您有帮助,希望把文章链接给更多的朋友!

php中使用基于libcurl的curl函数,可以对目标url发起http请求并获取返回的响应内容。通常的请求方式类似如下的代码:

上面代码中的这个$response是curl发起的这次http请求从$url获取到的数据,如果没有在$header中通过range来指定要下载的大小,无论这个资源多大,那么都要请求完整的并返回的是这个URI的完整内容。通常只用curl来请求求一些接口或者远程调用一个函数获取数据,,所以这个场景下CURLOPT_TIMEOUT这个参数很重要。

对于curl的使用场景不止访问数据接口,还要对任意的url资源进行检测是否能提供正确的http服务。当用户填入的url是一个资源文件时,例如一个pdf或者ppt之类的,这时候如果网络状况较差的情况下用curl请求较大的资源,将不可避免的出现超时或者耗费更多的网络资源。之前的策略是完全下载(curl会下载存储在内存中),请求完后检查内容大小,当超过目标值就把这个监控的任务暂停。这样事发后限制其实治标不治本,终于客户提出了新的需求,不能停止任务只下载指定大小的文件并返回md5值由客户去校验正确性。

经过了一些尝试,解决了这个问题,记录过程如下文。

1、尝试使用 CURLOPT_MAXFILESIZE。

对php和libcurl的版本有版本要求,完全的事前处理,当发现目标大于设置时,直接返回了超过大小限制的错误而不去下载目标了,不符合要求。

php使用curl下载指定大小的文件实例代码(php curl_exec)

2、使用curl下载过程的回调函数。

参考 ,最终使用了CURLOPT_WRITEFUNCTION参数设置了on_curl_write,该函数将会1s中被回调1次。

最终我的实现片段:

DownloadSizeRecorder是一个单例模式的类,curl下载时记录大小,实现返回下载内容的md5等。

curl请求的代码实例中,实现限制下载大小

到这里,踩了一个坑。增加了on_curl_write后,$response会返回true,导致后面取返回内容的时候异常。好在已经实时限制了下载的大小,用downloadData来记录了已经下载的内容,直接可以使用。

总结

以上所述是小编给大家介绍的php使用curl下载指定大小的文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

Laravel 5.5官方推荐的Nginx配置学习教程 前言本文主要给大家介绍了关于Laravel5.5官方推荐的Nginx配置的想内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍把。Laravel5.5版

PHP小白必须要知道的php基础知识(超实用) 很多人看到PHP就以为是程序员,就以为钱很多(虽然是事实),但是也要考虑下自己是不是适合这一行,知道PHP是什么吗?PHP都有什么样的功能,都能

Laravel中的Blade模板引擎示例详解 前言本文主要给大家介绍了关于Laravel中Blade模板引擎的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。Blade模板引擎Blade

标签: php curl_exec

本文链接地址:https://www.jiuchutong.com/biancheng/288261.html 转载请保留说明!

上一篇:ThinkPHP3.1.x修改成功与失败跳转页面的方法(thinkphp config)

下一篇:Laravel 5.5官方推荐的Nginx配置学习教程

  • 餐补如何入账
  • 应交税费应交增值税转出未交增值税是什么意思
  • 小规模纳税人发票怎么开
  • 旅游服务住宿费入什么科目
  • 淘宝发票收取的税点是谁来交
  • 个体工商户增值税申报操作流程
  • 收购农产品进项税抵扣税率是多少
  • 国资委无偿划拨资产不上税吗
  • 开具成品油专用发票时,应遵守哪些规则
  • 出口货物的进项发票什么时候认证
  • 资产减值损失进利润表吗
  • 饭店购买厨房用具分录
  • 利息股息红利所得个人所得税怎么算
  • 会务费 发票
  • 纳税人在同一地级行政范围内跨县经营
  • 金税四期什么时候结束
  • 餐饮消费,碰到商家不愿意开发票怎么办?
  • 计提坏账准备和发生坏账准备分录
  • 报税遇节假日延长吗?
  • 公司买回来做样衣的服装怎么做会计分录?
  • 法人可以公司账户存款吗
  • 公司账户有钱怎么取出来
  • 前端解决页面加载白屏
  • 远程怎么控制电脑
  • 应收账款无法收回确认为坏账会计分录
  • 美元汇款怎么汇
  • 存贷款基准利率和lpr
  • 手机cpu性能排行榜2023最新天梯图
  • 应付票据到期怎么处理
  • 无形资产的摊销方法
  • pc direct
  • 最薄的平板电脑是哪种
  • 特许权使用费属于无形资产吗
  • 月初在产品成本+本月生产费用
  • php 正则
  • ChatDoctor本地部署应用的实战方案
  • 滚动条基本样式有哪些
  • 【Pytorch深度学习50篇】·······第六篇:【常见损失函数篇】-----BCELoss及其变种
  • filezilla使用手册
  • 出租房屋收取跨年度的预收租金收入
  • 销售费用占销售成本比例
  • 原财政补助结余对应新账
  • php sql 教程
  • 收入纳税退税
  • 其他应付款贷方正数表示什么意思
  • 运输公司开具的增值税专用发票谁抵扣
  • mysql数据类型char
  • 长期股权投资投资损益的确认
  • 房地产销售老项目增值税
  • 转账进公户
  • 小规模纳税人附加税怎么算
  • 跆拳道馆薪酬详细方案
  • 更衣柜分配方案
  • 小规模纳税人减按1%政策
  • 公司老板个人卡收支公司业务属于什么行为
  • 以前年度多计提了费用
  • 企业间借款利息开票税收分类编码
  • 无形资产的相关税费
  • 装修费按几年摊销费用
  • 融资租赁的计算方法有哪些
  • 发票线上申领线下配送
  • 退回上年度企业所得税
  • 预收租金可以记入成本吗
  • 劳务成本如何核算
  • xp系统禁用网络连接
  • centos怎么安装软件包
  • PRISMSTA.EXE - PRISMSTA是什么进程 有什么用
  • win7系统按Ctrl+Shift不能切换输入法的图文教程
  • win10预览版和正式版区别
  • win10系统更改
  • android view动画
  • 获取文件内容
  • unity自动生成
  • vue3目录解析
  • jquery .find()
  • 噩梦pv
  • js调用失败
  • 广州市地税局副局长
  • 三亚国税局各区领导班子
  • 餐饮发票真伪查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设