I have to call external script in which i make a first call with CURL to get data which takes about 2-3 minutes, Now during this time i need to make other external call with CURL to get the progress of the first call. But issue is my next call wait till the reply of first CURL comes. I also checked curl_multi but that is also not helping me as i want to make many calls when the first call is in progress. So anyone can help me to solve it please.
2条回答 默认 最新
- douqi1931 2017-06-02 13:20关注
I suppose that, there is no need to make second call to track the CURL progress. You can achieve the same by using CURL option
CURLOPT_PROGRESSFUNCTION
with a callback function.The call back method takes 5 arguments:
- cURL resource
- Total number of bytes expected to be downloaded
- Number of bytes downloaded so far
- Total number of bytes expected to be uploaded
- Number of bytes uploaded so far
In the callback method you can calculate the percentage downloaded/uploaded. An example is given below:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://stackoverflow.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progress'); curl_setopt($ch, CURLOPT_NOPROGRESS, false); curl_setopt($ch, CURLOPT_HEADER, 0); $html = curl_exec($ch); curl_close($ch); function progress($resource,$download_size, $downloaded, $upload_size, $uploaded) { if($download_size > 0) echo $downloaded / $download_size * 100 . "% "; sleep(1); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 关于用python写支付宝扫码付异步通知收不到的问题
- ¥50 vue组件中无法正确接收并处理axios请求
- ¥15 隐藏系统界面pdf的打印、下载按钮
- ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
- ¥15 基于pso参数优化的LightGBM分类模型
- ¥15 安装Paddleocr时报错无法解决
- ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
- ¥50 分布式追踪trace异常问题
- ¥15 人在外地出差,速帮一点点
- ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改