{site_name}

{site_name}

🌜 搜索

在 PHP 中,curl_multi_exec 函数是用于同时执行多个 CURL 请求的函数

php 𝄐 0
php curl_multi_init,php curl_multi
在 PHP 中,curl_multi_exec 函数是用于同时执行多个 CURL 请求的函数。它可以在一次请求中执行多个 URL 和处理多个不同的回调函数。

以下是使用 curl_multi_exec 的基本示例:

php
// 创建多个 cURL 句柄
$curl_handles = array(
curl_init('http://example.com/page1'),
curl_init('http://example.com/page2'),
curl_init('http://example.com/page3')
);

// 创建多个 cURL 句柄
$multi_handle = curl_multi_init();

// 将所有句柄添加到多 handle 中
foreach ($curl_handles as $handle) {
curl_multi_add_handle($multi_handle, $handle);
}

// 执行多个请求
$running = null;
do {
curl_multi_exec($multi_handle, $running);
} while ($running > 0);

// 处理每个请求的响应
foreach ($curl_handles as $handle) {
$content = curl_multi_getcontent($handle); // 获取响应内容

// 处理响应数据,例如输出到浏览器
echo $content;

// 关闭句柄
curl_multi_remove_handle($multi_handle, $handle);
}

// 关闭多 handle
curl_multi_close($multi_handle);


上述示例中,首先我们创建了多个 CURL 句柄,分别对应需要请求的不同 URL。然后,我们创建了一个多 handle,并将所有句柄添加到多 handle 中。接着,通过循环不断调用 curl_multi_exec 函数来执行请求,直到所有请求都完成。在每次循环中,我们可以使用 curl_multi_getcontent 函数获取每个请求的响应内容,并进行相应的处理。最后,我们释放所有句柄和多 handle。

注意:使用 curl_multi_exec 函数时要处理返回值 $running。当 $running 大于 0 时,表示仍有未完成的请求,需要继续执行 curl_multi_exec。当 $running 等于 0 时,表示所有请求都已完成。

希望以上说明可以帮助到你!