$active = null ;
// 执行批处理句柄
do {
$mrc = curl_multi_exec ( $mh , $active );
} while ( $mrc == CURLM_CALL_MULTI_PERFORM );
while ( $active && $mrc == CURLM_OK ) {
if ( curl_multi_select ( $mh ) != - 1 ) {
do {
$mrc = curl_multi_exec ( $mh , $active );
} while ( $mrc == CURLM_CALL_MULTI_PERFORM );
}
}
请教一下 $active、CURLM_CALL_MULTI_PERFORM、CURLM_OK分别表示什么,它们有什么区别呢?
$active
一个是否仍在执行的标识的引用。
CURLM_CALL_MULTI_PERFORM
定义的常量,值为
-1
, 意思是还未处理完成。CURLM_OK
定义的常量,值为
0
,意思是正常返回可以参考一下PHP官方的中文文档:
curl_multi_exec ( resource $mh , int &$still_running ) : int
处理在栈中的每一个句柄。无论该句柄需要读取或写入数据都可调用此方法。
参数
multi_handle
由 curl_multi_init() 返回的 cURL 多个句柄。
still_running
一个用来判断操作是否仍在执行的标识的引用。