English | 简体中文 | 繁體中文
查询

curl_multi_init()函数—用法及示例

「 初始化一个空的 cURL 多个句柄资源 」


函数名称:curl_multi_init() 适用版本:PHP 5, PHP 7

函数说明: curl_multi_init() 函数用于初始化一个空的 cURL 多个句柄资源。它在使用多个 cURL 请求时非常有用,可以同时发送多个请求并等待它们全部完成。

语法: resource curl_multi_init ( void )

参数说明: 无参数。

返回值: 返回一个新的 cURL 多个句柄的资源。

示例用法: <?php // 创建 cURL 多个句柄资源 $multiHandle = curl_multi_init();

// 添加多个 cURL 句柄到多句柄资源中 $ch1 = curl_init("https://example.com/api1"); curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($multiHandle, $ch1);

$ch2 = curl_init("https://example.com/api2"); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($multiHandle, $ch2);

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

// 检查请求结果 $results = []; $successCount = 0;

while ($done = curl_multi_info_read($multiHandle)) { $result = curl_multi_getcontent($done['handle']); $results[] = $result;

if ($done['result'] === CURLE_OK) {
    $successCount++;
}

curl_multi_remove_handle($multiHandle, $done['handle']);

}

// 关闭多句柄资源 curl_multi_close($multiHandle);

// 输出结果 echo "Total requests: " . $successCount . "\n"; echo "Response results: \n"; foreach ($results as $i => $result) { echo "Request " . ($i + 1) . ": " . $result . "\n"; } ?> 以上示例代码使用 curl_init() 创建两个 cURL 句柄,并使用 curl_setopt() 设置相关选项。然后,通过 curl_multi_add_handle() 添加句柄到多句柄资源中。接着,使用 curl_multi_exec() 执行多个 cURL 请求,并使用 curl_multi_info_read() 循环获取请求结果。最后,通过 curl_multi_remove_handle() 移除句柄并关闭多句柄资源。最终,输出请求结果。

请注意,此示例仅用于说明 curl_multi_init() 函数的基本用法,实际应用可能需要更复杂的请求处理和错误处理逻辑。

补充纠错
上一个函数: curl_multi_info_read()函数
热门PHP函数
分享链接