牛牛在线工具

curl_multi_init()

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

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() 函数的基本用法,实际应用可能需要更复杂的请求处理和错误处理逻辑。