PHP 用 curl 读取 HTTP chunked 数据
来源:互联网 发布:大学英语单词读音软件 编辑:程序博客网 时间:2024/06/10 07:39
对于 Web 服务器返回的 HTTP chunked 数据, 我们可能希望在每一个 chunk 返回时得到回调, 而不是所有的响应返回后再回调. 例如, 当服务器是 icomet 的时候.
在 PHP 中使用 curl 代码如下:
<?php $url = "http://127.0.0.1:8100/stream";$ch = curl_init($url);curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'myfunc');$result = curl_exec($ch);curl_close($ch);function myfunc($ch, $data){ $bytes = strlen($data); // 处理 data return $bytes;}
但是, 这里有一个问题. 对于一个 chunk, 回调函数可能会被调用多次, 每一次大概是 16k 的数据. 这显然不是我们希望得到的. 因为 icomet 的一个 chunk 是以 "\n" 结尾, 所以回调函数可以做一下缓冲.
function myfunc($ch, $data){ $bytes = strlen($data); static $buf = ''; $buf .= $data; while(1){ $pos = strpos($buf, "\n"); if($pos === false){ break; } $data = substr($buf, 0, $pos+1); $buf = substr($buf, $pos+1); // 处理 data }}
问啊-定制化IT教育平台,牛人一对一服务,有问必答,开发编程社交头条 官方网站:www.wenaaa.com 下载问啊APP,参与官方悬赏,赚百元现金。QQ群290551701 聚集很多互联网精英,技术总监,架构师,项目经理!开源技术研究,欢迎业内人士,大牛及新手有志于从事IT行业人员进入!
0 0
- PHP 用 curl 读取 HTTP chunked 数据
- PHP 用 curl 读取 HTTP chunked 数据
- C++解析http-chunked数据
- php cUrl 通过 http post json数据
- php-curl ErrnoProblem (2) in the Chunked-Encoded data问题解决
- http Chunked
- HTTP CHUNKED
- PHP解码chunked编码的数据
- php curl http https
- PHP CURL HTTP研究
- PHP + curl 实现 http 或 https 抓取数据:
- 【PHP】curl 提交数据
- php curl 抓取数据
- PHP CURL HTTP 研究笔记
- php curl http 那些事
- PHP CURL GET HTTP CODE
- php http请求 curl方法
- PHP CURL 与 java http
- Redis入门很简单之二【常见操作命令】
- Eclipse如何打包jar包
- 1.2D摄影几何
- shell、cmd、DOS、python、php区别
- IOS单选框的实现
- PHP 用 curl 读取 HTTP chunked 数据
- time()函数和date()函数的区别
- 服务器共享Session和jsp四种会话跟踪技术
- hrbust 哈理工oj 1588 神医【贪心】
- vmstat
- Eclipse+Maven创建webapp项目<二>
- php递归函数的理解
- class.get...
- 购买百度开放云不得不看的实惠好贴!