$ch = array(); $mh = curl_multi_init(); for ($i = 0; $i< $num; $i++) { $url = $urls[$i]; $ch[$i] = curl_init($url); // 設置請求的參數 curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, true); curl_setopt($ch[$i], CURLOPT_FOLLOWLOCATION, true); curl_multi_add_handle($mh, $ch[$i]); } do { curl_multi_select($mh); // 輪詢處理事件 curl_multi_exec($mh, $running); } while ($running >0); // 獲取響應信息 for ($i = 0; $i< $num; $i++) { $res[$i] = curl_multi_getcontent($ch[$i]); curl_multi_remove_handle($mh, $ch[$i]); curl_close($ch[$i]); } curl_multi_close($mh);上述代碼中,我們首先使用curl_multi_init來初始化一個多 curl handle ,然后循環遍歷我們需要請求的URL數組,創建一個URL對應的curl handle,并把它添加到多curl handle中,最后進入輪詢狀態,等待所有請求返回。
$ch = array(); $mh = curl_multi_init(); for ($i = 0; $i< $num; $i++) { $url = $urls[$i]; $ch[$i] = curl_init($url); // 設置請求的參數 curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, true); curl_setopt($ch[$i], CURLOPT_FOLLOWLOCATION, true); curl_multi_add_handle($mh, $ch[$i]); } do { $re = curl_multi_exec($mh, $running); } while ($running >0 && $re == CURLM_OK); // 獲取響應信息 for ($i = 0; $i< $num; $i++) { $res[$i] = curl_multi_getcontent($ch[$i]); curl_multi_remove_handle($mh, $ch[$i]); curl_close($ch[$i]); } curl_multi_close($mh);兩種方式都通過curl_multi_add_handle函數將curl handle添加到多curl handle中來進行請求操作。最后,我們使用curl_multi_getcontent來獲取響應,然后用curl_multi_remove_handle和curl_close函數完成最后的清理工作最后用curl_multi_close關閉curl請求。
上一篇css 購物車動畫
下一篇php curl弊端