這兩天有一客戶定製了乙個免登入發布模組,因為在模組中需要涉及到很多**的問題,考慮到效能問題,所以特別寫了乙個curl_multi遠端採集網頁的函式,以方便以後使用,估計以後都不會使用原來的單執行緒curl函式去foreach了,其效能對比很明顯的。同樣獲取我的部落格的十個不同網頁,curl_multi:4.5246081352234,file_get_contents:33.001797914505,將近8倍的效率,可想而知,如果在附件更多的情況下,效能差異就越明顯了,希望對您有所幫助!
複製** **如下:
php$text = remote(array('',''));
print_r($text);
function remote($urls)
$curl程式設計客棧 = $text = array();
$handle = curl_multi_init();
foreach($urls as $k => $v)
$active = null;
do while ($mrc == curlm_call_multi_perform)kwhoklzajl;
while ($active && $mrc == curlm_ok) while ($mrc == curlm_call_multi_perform);}}
foreach ($curl as $k => $v)
curl_multi_remove_handle($handle, $curl[$k]);
curl_close($curl[$k]);
}curl_multi_close($handle);
return $text;
}
本文標題: php使用curl_multi實現多執行緒採集的例子
本文位址:
PHP使用curl multi併發請求
輪詢 do 一旦有乙個請求完成,找出來,處理,因為curl底層是select,所以最大受限於1024 while done curl multi info read 當沒有資料的時候進行堵塞,把 cpu 使用權交出來,避免上面 do 死迴圈空跑資料導致 cpu 100 if running if r...
PHP 之 curl multi實現併發
curl normal.php srart time microtime true charr 建立多個curl資源 for i 0 i 10 i print r result end time microtime true echo sprintf use time 3f s end time s...
對curl multi的使用
最近在做畢業設計用到php的非同步,在看到了很多 中用到了以下 active null do while ret curlm call multi perform while active ret curlm ok while mrc curlm call multi perform 在上面這段 之...