PHP 用 curl 读取 HTTP chunked 数据
程序员文章站
2022-03-25 19:59:27
...
对于 Web 服务器返回的 HTTP chunked 数据, 我们可能希望在每一个 chunk 返回时得到回调, 而不是所有的响应返回后再回调. 例如, 当服务器是 icomet 的时候.
在 PHP 中使用 curl 代码如下:
但是, 这里有一个问题. 对于一个 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行业人员进入!
以上就介绍了PHP 用 curl 读取 HTTP chunked 数据,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
推荐阅读
-
小弟我用flex+php+mysql读取数据显示出现了有关问题!看下写法如何改?
-
php 用curl_exec获取页面数据问题
-
php 读取xml的方法三---用php正则表达式来记取数据
-
http - PHP CURL请求后端API时(POST), 怎么构造请求数据使请求body里有多个boundary
-
用PHP编程读取汉字点阵数据_PHP教程
-
PHP能不能把js文件写入数据库,前台用js文件,直接读取数据库,该如何解决
-
PHP能不能把js文件写入数据库,前台用js文件,直接读取数据库
-
php curl怎么得到HTTP chunked response中chunked data size
-
用php制作简单分页(从数据库读取记录)的方法详解
-
http - PHP CURL请求后端API时(POST), 怎么构造请求数据使请求body里有多个boundary