有没有办法检查curl命令的状态?说,我有一个来自php的curl调用,使用exec启动它。有没有办法在它运行时检查它的进度?或者我必须等待它完成?
exec(“curl $ url -k> / dev / null 2>& 1&”);
答案 0 :(得分:4)
您可以定义进度函数:
curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, 'my_progress_handler');
回调函数的名称在哪里 回调函数需要三个 参数。第一个是cURL 资源,第二是 文件描述符资源,以及 第三是长度。返回字符串 包含数据。
有关详细信息,请参阅here。
注意:This comment对PHP自己的功能签名提出异议。
您无法使用exec()
,因为它是阻止功能。它将等待,直到手头的程序终止
编辑:哦,我看到你使用了&符号,没关系
你可以使用的是popen()
,但除非curl有一个输出进度的好方法,否则这不会很漂亮。
我建议将-#
作为参数传递给curl
,这样就可以很好地从输出流中获取进度。