牛牛在线工具

curl_multi_exec()

收录 8868 个 PHP 函数,含用途说明与用法示例。

curl_multi_exec()

同时处理多个cURL请求

函数:curl_multi_exec() 适用版本:PHP 5, PHP 7 用法:该函数用于同时处理多个cURL请求。 resource curl_multi_exec ( resource $mh , int &$still_running ) 参数: $mh:由 curl_multi_init() 返回的 cURL 多处理句柄。 &$still_running:返回一个整数值,表示还在进行中的请求数量。 返回值: 如果出现错误,返回一个 CURLM_* 错误码(例如,CURLE_OUT_OF_MEMORY表示内存不足)。 如果执行成功,返回 CURLM_CALL_MULTI_PERFORM。 如果所有请求都完成并且没有错误,返回 CURLM_OK。 示例: $mh = curl_multi_init(); $ch1 = curl_init(); curl_setopt($ch1, CURLOPT_URL, "http://example.com/request1"); curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch1); $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, "http://example.com/request2"); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch2); do { $status = curl_multi_exec($mh, $still_running); } while ($status === CURLM_CALL_MULTI_PERFORM || $still_running); // 检查错误 if ($status !== CURLM_OK) { echo "cURL multi-exec error: " . curl_multi_strerror($status); } // 获取请求结果 $result1 = curl_multi_getcontent($ch1); $result2 = curl_multi_getcontent($ch2); // 关闭句柄 curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh); echo "Request 1 result: " . $result1; echo "Request 2 result: " . $result2; 这个示例展示了如何使用 curl_multi_exec() 来同时处理两个cURL请求。你可以添加更多的cURL句柄到多处理句柄 ($mh),然后使用循环来执行并检查请求的状态,直到所有请求都完成。最后,你可以使用 curl_multi_getcontent() 函数获取每个请求的结果。请注意,你仍然需要使用 curl_multi_remove_handle() 和 curl_multi_close() 关闭每个请求的句柄。