第二天我通過各種網路搜尋又搞出了乙個更快的方法,使用curl_multi這個東西我在網路上也沒看懂到底是怎麼回事,但是網上的文章都千篇一律,全是copy的,我也就依葫蘆畫瓢,拼拼湊湊勉強能夠執行,先貼出**:
<?php
function fn()
function writelog($str)
if($_post["nums"] and $_post["nume"])
$mh = curl_multi_init();
foreach ($connomains as $i => $url)
do while ($active);
while($active&&$mrc==curlm_ok)while($mrc==curlm_call_multi_perform);
} }
foreach ($connomains as $i => $url)
$value=curl_multi_getcontent($conn[$i]);
curl_close($conn[$i]);
}$end_time = fn();
echo '符合條件共'.$count.'條記錄';
}?>
**具體什麼意思我也就不解釋了,因為我自己也沒搞懂....
簡單說一下她的問題:
1.同時請求的數量不能太多,太多就會出現錯誤(保持在1000以內最好)。
2.不是真正的多執行緒,導致效率依然不夠,不過較之前的提高了十幾倍(請求100個只需要三秒多),還是不錯了。
程式值得優化的地方放依然很多,等以後自己懂得的知識多起來再回過頭來嗎,慢慢改進。
php利用curl multi 函式實現非同步請求
這是php官方示例的用curl實現併發請求的 create both curl resources ch1 curl init ch2 curl init curl setopt ch1,curlopt url,curl setopt ch1,curlopt header,0 curl setopt...
PHP利用CURL MULTI實現多執行緒
php中的curl multi一類函式可以實現同時請求多個url,而不是乙個乙個依次請求,這就類似乙個程序實現了多個執行緒的功能,因此可以使用php利用curl multi實現完成多執行緒類的任務,下面就乙個利用php curl multi多執行緒採集網頁為例來說明一下。檢視 列印01 02 功能 ...
PHP使用curl multi併發請求
輪詢 do 一旦有乙個請求完成,找出來,處理,因為curl底層是select,所以最大受限於1024 while done curl multi info read 當沒有資料的時候進行堵塞,把 cpu 使用權交出來,避免上面 do 死迴圈空跑資料導致 cpu 100 if running if r...