curl_multi_init()函数简介
curl_multi_init()函数用于同时初始化多个cURL会话,它是libcurl库中的一个函数,它可以用于实现多线程的文件传输。
curl_multi_init()函数使用方法
使用curl_multi_init()函数,需要初始化一个cURL多线程句柄:
$mh = curl_multi_init();
可以使用curl_multi_add_handle()函数添加多个cURL句柄,如:
$ch1 = curl_init("http://www.example.com/1.php");
curl_multi_add_handle($mh, $ch1);
$ch2 = curl_init("http://www.example.com/2.php");
curl_multi_add_handle($mh, $ch2);
$ch3 = curl_init("http://www.example.com/3.php");
curl_multi_add_handle($mh, $ch3);
使用curl_multi_exec()函数来执行多个cURL句柄:
$active = null;
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
使用curl_multi_remove_handle()函数来移除多个cURL句柄:
curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_remove_handle($mh, $ch3);
使用curl_multi_close()函数来关闭多个cURL句柄:
curl_multi_close($mh);