在 PHP 中,要实现并发请求,可以使用 curl_multi_init()
函数。这个函数允许你同时处理多个 cURL 会话。下面是一个简单的示例,展示了如何使用 curl_multi_init()
实现并发请求:
$url) { $ch[$i] = curl_init(); curl_setopt($ch[$i], CURLOPT_URL, $url); curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, 1); // 将 cURL 资源加入到 cURL Multi 资源中 curl_multi_add_handle($mh, $ch[$i]); } $active = null; // 执行处理 do { $status = curl_multi_exec($mh, $active); $info = curl_multi_info_read($mh); if (false !== $info) { // 获取请求结果 $content = curl_multi_getcontent($info['handle']); echo "Result: " . $content . PHP_EOL; // 移除已完成的 cURL 资源 curl_multi_remove_handle($mh, $info['handle']); } } while ($active && $status == CURLM_OK); // 关闭 cURL Multi 资源 curl_multi_close($mh); // 关闭 cURL 资源 foreach ($ch as $curl) { curl_close($curl); } ?>
这个示例首先创建一个 cURL Multi 资源,然后遍历 URL 列表,为每个 URL 初始化一个 cURL 资源并设置相应的选项。接着,将每个 cURL 资源加入到 cURL Multi 资源中。通过 curl_multi_exec()
函数执行处理,并使用 curl_multi_info_read()
函数读取已完成的请求。最后,获取请求结果并输出,同时关闭 cURL Multi 资源和 cURL 资源。