国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP使用CURL_MULTI實現多線程采集的例子

2019-11-08 01:50:54
字體:
來源:轉載
供稿:網友

這兩天有一客戶定制了一個免登錄發布模塊,因為在模塊中需要涉及到很多圖片下載的問題,考慮到性能問題,所以特別寫了一個CURL_MULTI遠程采集網頁的函數,以方便以后使用,估計以后都不會使用原來的單線程curl函數去foreach了,其性能對比很明顯的。同樣獲取我的博客的十個不同網頁,curl_multi:4.5246081352234,file_get_contents:33.001797914505,將近8倍的效率,可想而知,如果在附件更多的情況下,性能差異就越明顯了,希望對您有所幫助!

<?php$text = remote(array('http://www.jb51.net/','http://www.baidu.com/'));PRint_r($text);function remote($urls) { if (!is_array($urls) or count($urls) == 0) { return false; } $curl = $text = array(); $handle = curl_multi_init(); foreach($urls as $k => $v) { $nurl[$k]= preg_replace('~([^:///.]+)~ei', "rawurlencode('//1')", $v); $curl[$k] = curl_init($nurl[$k]); curl_setopt($curl[$k], CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl[$k], CURLOPT_HEADER, 0); curl_multi_add_handle ($handle, $curl[$k]); } $active = null; do { $mrc = curl_multi_exec($handle, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($handle) != -1) { do { $mrc = curl_multi_exec($handle, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } foreach ($curl as $k => $v) { if (curl_error($curl[$k]) == "") { $text[$k] = (string) curl_multi_getcontent($curl[$k]); } curl_multi_remove_handle($handle, $curl[$k]); curl_close($curl[$k]); } curl_multi_close($handle); return $text;}
上一篇:php魔術方法

下一篇:PHP的面向對象

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆尧县| 定安县| 麟游县| 惠水县| 彭水| 定州市| 漳州市| 柳州市| 绥中县| 灌云县| 女性| 福贡县| 河南省| 通河县| 江川县| 涟水县| 凤翔县| 柳林县| 新化县| 二手房| 威海市| 波密县| 漯河市| 团风县| 沁源县| 高青县| 沙坪坝区| 陵水| 青海省| 长沙县| 嘉鱼县| 绥化市| 黑山县| 清徐县| 乐都县| 增城市| 临武县| 彩票| 嵊州市| 宝鸡市| 武乡县|