1
林建立一個鏈接檢查功能,檢查鏈接是否有代碼200/301/302。鏈接檢查與多捲曲
我想檢查大約1000個鏈接,所以我使用了Multi-CURL功能,並且獲取了所有標題,代碼,URL重定向到的URL。
問題是Multi-CURL並行地將所有的URL添加到curl_multi_add_handle並返回它得到的結果並忽略其餘部分。
我從頭部知道哪些結果我回來,但我不知道哪個網址帶來了它。有沒有一個標識符我要求一個特定的執行句柄的URL(可能與curl_multi_info_read有關)?
這裏我的代碼:
$curls = $listofurls;
$curl_arr = array();
$master = curl_multi_init();
for($i = 0; $i < $node_count; $i++) {
$curl_arr[$i] = curl_init($curls[$i][0]);
curl_setopt($curl_arr[$i],CURLOPT_FRESH_CONNECT,true);
curl_setopt($curl_arr[$i],CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curl_arr[$i],CURLOPT_HEADER,true);
curl_setopt($curl_arr[$i],CURLOPT_CUSTOMREQUEST,'HEAD');
curl_setopt($curl_arr[$i],CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_arr[$i],CURLOPT_NOBODY,true);
curl_setopt($curl_arr[$i],CURLOPT_AUTOREFERER, 1);
curl_setopt($curl_arr[$i],CURLOPT_TIMEOUT,30);
curl_multi_add_handle($master, $curl_arr[$i]);
}
$finalresult = array();
do{
curl_multi_exec($master, $running);
$info = curl_multi_info_read($master);
if($info['handle']) {
$finalresult[] = curl_multi_getcontent($info['handle']);
curl_multi_remove_handle($master, $info['handle']);
}
$previousActive = $running;
}
while($running > 0);
curl_multi_close($master);
欣賞Help.Thanx。
感謝您發表該答案。我有同樣的問題如何找出訂單。 – Shawn 2014-01-13 23:10:05