PHP中使用curl_init时如何实现并发请求

   2024-09-30 5320
核心提示:在 PHP 中,要实现并发请求,可以使用 curl_multi_init() 函数。这个函数允许你同时处理多个 cURL 会话。下面是一个简单的示例,

在 PHP 中,要实现并发请求,可以使用 curl_multi_init() 函数。这个函数允许你同时处理多个 cURL 会话。下面是一个简单的示例,展示了如何使用 curl_multi_init() 实现并发请求:

<?php// 请求的 URL 列表$urls = [    'https://example1.com',    'https://example2.com',    'https://example3.com'];// 初始化 cURL Multi 资源$mh = curl_multi_init();// 初始化 cURL 资源并设置选项$ch = [];foreach ($urls as $i => $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 资源。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号