使用 curl_multi_exec 运行 curl 的并行处理程序


Run parallel handler of curl with curl_multi_exec

为什么在这段代码中我需要调用 2 次curl_multi_exec函数。

在第一个循环中,我正在执行curl_multi_exec处理程序以运行子处理程序。当CURLM_CALL_MULTI_PERFORM与$mrc不同时,循环结束。

在第二个循环中,我们从 curl 处理程序中找到结果,然后再次执行第一个循环,为什么?

<?php 
    do {
        $mrc = curl_multi_exec($multiHandle, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($multiHandle, $timeout) != -1) {
            do {
                $mrc = curl_multi_exec($multiHandle, $active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }
?>

代码是从 PHP-Doc 站点中提取的

答案在这里curl_multi_exec()。

这令人沮丧,因为 PHP 的文档在某些方面可能毫无用处......