位置: 编程技术 - 正文

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配置学习教程

  • 认缴制股权转让印花税的计税依据是什么
  • 固定资产累计折旧会计科目
  • 对公账户给私人转账手续费
  • 资产处置收益计入利润总额吗
  • 个税完税凭证在哪里打印出来
  • 企业所得税减免政策2023
  • 普通合伙企业要交什么税
  • 非破产清算会计案例
  • 事业单位取暖费标准
  • 没收逾期未退包装物押金收益,应计入( )科目
  • 固定资产清理增加记哪一方
  • 应交税费的期初余额是借还是贷
  • 在建工程完工,并当日签订出租协议的会计分录
  • 仓库盘盈计入什么会计
  • 注册资本变更需要去税务局吗
  • 处置打包债权如何缴纳个人所得税?
  • 外挂项目跨年结转分录怎么做?
  • 企业合并资本公积转留存收益
  • 融资融券主要是哪些对象
  • 税金及附加包括个人所得税吗
  • 商业承兑到期兑不出来多久的追诉期
  • 公司增值税发票怎么开
  • 兼职人员的工资需要发票吗
  • 华为鸿蒙系统如何关闭hd通话
  • 未到期的商业票据是什么
  • 企业收到利息收入开发票吗
  • 确认坏账需要纳税调整吗
  • 应收账款补贴
  • 公司的贷款过桥怎么办
  • 标书装订费用分录
  • 增值税专票开错了可以作废吗
  • 内部审计类型分为哪几种
  • 肚子胀气怎么办 4个方法快速排气很轻松
  • 如何用php做到页数显示
  • uniapp实战视频教程
  • vue项目引入ts
  • thinkphp3.0
  • 调整价格差额计算应采用
  • 没有发票以及收款怎么办
  • 所得税费用当月计提吗
  • 进口设备增值税计算
  • 增值税专票和普票的区别图片
  • 成本不够用怎么办baixing
  • 企业待摊费用怎么计算
  • sql3表连接查询
  • 客户多付的货款 不用退回 进营业外收入吗
  • 新会计准则印花税需要计提吗
  • 增值税专用发票几个点
  • 余额百分比法的会计分录
  • 以前年度损益调整是什么意思
  • 建筑企业收挂靠公司管理费如何做账?
  • 如何理解非货币性资产
  • 固定资产多少钱标准
  • 主营业务成本和其他业务成本区别
  • 企业会计准则规定,企业在对会计要素
  • 成本核算方法有哪几种
  • win8系统笔记本怎么恢复出厂设置
  • win7如何开启VT
  • freebsd 安装
  • win7桌面图标都不见了
  • win10预览版和正式版
  • centos7ssh登录
  • win7系统声音设置方法
  • linux常用性能监控命令
  • windows7怎
  • opengl绘制图形旋转
  • 微信开发微信开发
  • jQuery使用$.ajax进行异步刷新的方法(附demo下载)
  • vue插件使用
  • nodejs.
  • Emeditor与dos(cmd)经典使用技巧之批量生成网页
  • js foreach倒序
  • 如何在js中实现输入
  • 什么情况下税务局会罚款
  • 金税盘软件怎么打开
  • 话费的发票可以做费用吗
  • 开票后怎么报税呢
  • 国网四川电力客户电话号码
  • 个人领税票需要哪些资料
  • 2020年安徽省护理技能大赛视频播放
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设