这是一个创建于 2756 天前的主题,其中的信息可能已经有所发展或是发生改变。
准备用 PHP 定时请求一个大文件观测性能,但是查了查都没有找到关于 fopen , file_get_contents , curl 之类的函数如何得到实时速度,所以来问问各位有没有实现过的,应该如何实现?
第 1 条附言 · 2017-03-21 17:45:03 +08:00
通过 CURLOPT_PROGRESSFUNCTION 成功解决了问题, PHP-CLI 可以实时返回当前下载大小。
看起来是一秒一次,但实际我也不太清楚,不过完全够用。
用 CURLOPT_WRITEFUNCTION 时似乎直接调用了 curl ,没得到结果。
fread 循环没试过,效率应该会比 curl 高很多,但是 curl 的效率已经够用了~
8 条回复 • 2017-03-21 17:42:47 +08:00
|
|
1
hoythan 2017-03-21 17:04:25 +08:00
AJAX + fastcgi_finish_request ?
|
|
|
2
vus520 2017-03-21 17:09:13 +08:00 1
用 fread 循环,就可以读取时间差和内容长度,计算出速度了
|
|
|
3
lslqtz 2017-03-21 17:16:09 +08:00 via iPhone
@ hoythan 然而不是用浏览器,是一个常驻命令行脚本
|
|
|
5
lslqtz 2017-03-21 17:17:28 +08:00 via iPhone
@ vus520 一次读多少比较好呢… 有些麻烦,不过是一个好的解决方式。 感谢已发!
|
|
|
6
lslqtz 2017-03-21 17:20:40 +08:00 via iPhone
@ suren1986 也比较麻烦,不过比起自己实现方便很多。 感谢已发~!
|
|
|
7
enenaaa 2017-03-21 17:26:39 +08:00 1
curl 可以设置回调函数, 在里面计算当前速度。 CURLOPT_WRITEFUNCTION
|