PHP使用CURL MULTI實現多執行緒採集的例子

2022-10-04 05:54:08 字數 891 閱讀 8313

這兩天有一客戶定製了乙個免登入發布模組,因為在模組中需要涉及到很多**的問題,考慮到效能問題,所以特別寫了乙個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 在上面這段 之...