查詢

curl_multi_add_handle()函式—用法及示例

「 將單個 cURL 控制代碼新增到 curl 多個控制代碼中,使多個 cURL 請求可以同時進行 」


函式名稱:curl_multi_add_handle()

適用版本:PHP 5, PHP 7

函式描述:curl_multi_add_handle() 函式將單個 cURL 控制代碼新增到 curl 多個控制代碼中,使多個 cURL 請求可以同時進行。

語法:bool curl_multi_add_handle ( resource $mh , resource $ch )

引數:

  • $mh:必需。curl 多個控制代碼資源,透過 curl_multi_init() 函式建立。
  • $ch:必需。單個 cURL 控制代碼資源,透過 curl_init() 函式建立。

返回值:

  • 該函式返回一個布林值,表示是否成功將 cURL 控制代碼新增到 curl 多個控制代碼中。如果成功,則返回 true;否則返回 false。

示例:

// 建立 curl 多個控制代碼
$mh = curl_multi_init();

// 建立第一個 cURL 控制代碼
$ch1 = curl_init("https://www.example.com/api1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch1);

// 建立第二個 cURL 控制代碼
$ch2 = curl_init("https://www.example.com/api2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch2);

// 併發執行多個 cURL 請求
$running = null;
do {
    curl_multi_exec($mh, $running);
} while ($running > 0);

// 關閉所有控制代碼
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

上述示例中,我們首先使用 curl_multi_init() 函式建立了一個 curl 多個控制代碼資源 $mh。然後使用 curl_init() 函式建立了兩個 cURL 控制代碼資源 $ch1 和 $ch2,分別用於傳送兩個不同的 API 請求。接著使用 curl_multi_add_handle() 函式將這兩個 cURL 控制代碼新增到 curl 多個控制代碼中。最後,透過迴圈呼叫 curl_multi_exec() 函式來併發執行這兩個請求,直到所有請求都完成。最後,使用 curl_multi_remove_handle() 函式將控制代碼從多個控制代碼中移除,並呼叫 curl_multi_close() 函式關閉多個控制代碼。

請注意,在使用 curl_multi_add_handle() 函式之後,需要使用 curl_multi_exec() 函式來實際傳送請求。而在 curl_multi_remove_handle() 函式之前,必須等待所有請求完成,可以透過檢查 curl_multi_exec() 函式的返回值來判斷是否還有請求正在進行。

補充糾錯
上一個函式: curl_init()函式
下一個函式: curl_multi_close()函式
熱門PHP函式
分享連結