PHP Conference Japan 2024

curl_multi_remove_handle

(PHP 5, PHP 7, PHP 8)

curl_multi_remove_handle從一組 cURL 句柄中移除一個句柄

說明

curl_multi_remove_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

從指定的 multi_handle 中移除指定的 handle。當 handle 被移除後,再次對此句柄執行 curl_exec() 是完全合法的。在使用 handle 時將其移除,將有效停止涉及該句柄的傳輸進度。

參數

multi_handle

curl_multi_init() 返回的 cURL 多重句柄。

handle

curl_init() 返回的 cURL 句柄。

傳回值

成功時傳回 0,或其中一個 CURLM_* 錯誤碼。

更新日誌

版本 說明
8.0.0 multi_handle 現在需要一個 CurlMultiHandle 實例;先前需要的是 資源
8.0.0 handle 現在需要一個 CurlHandle 實例;先前需要的是 資源

參見

新增筆記

使用者貢獻的筆記 1 則筆記

mercury at caucasus dot net
14 年前
在執行 curl_multi_remove_handle() 後,對所有個別的 curl 控制代碼使用 curl_close() 總是一個好主意。這將釋放額外的記憶體資源。因此,典型的程式碼如下所示

<?php
$ch1
= curl_init();
curl_setopt($ch1, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, 'http://www.example.net/');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);

$mh = curl_multi_init();

curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

$active = null;

do {
curl_multi_exec($mh, $active);
}
while(
$active);

$res1 = curl_multi_getcontent($ch1);
$res2 = curl_multi_getcontent($ch2);

curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);

curl_multi_close($mh);

curl_close($ch1);
curl_close($ch2);
?>
To Top