亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP中巧用curl 并發減少獲取第三方網頁內容時間

瀏覽:4日期:2022-09-13 13:35:52
前言:

在我們平時的程序中難免出現同時訪問幾個接口的情況,平時我們用curl進行訪問的時候,一般都是單個、順序訪問,假如有3個接口,每個接口耗時500毫秒那么我們三個接口就要花費1500毫秒了,這個問題太頭疼了嚴重影響了頁面訪問速度,有沒有可能并發訪問來提高速度呢?今天就簡單的說一下,利用curl并發來提高頁面訪問速度, 希望大家多指導。

1、老的curl訪問方式以及耗時統計

<?phpfunction curl_fetch($url, $timeout=3){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); $errno = curl_errno($ch); if ($errno>0) {$data = false; } curl_close($ch); return $data;}function microtime_float(){ list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec);}$url_arr=array( 'taobao'=>'http://www.taobao.com', 'sohu'=>'http://www.sohu.com', 'sina'=>'http://www.sina.com.cn',);$time_start = microtime_float();$data=array();foreach ($url_arr as $key=>$val){ $data[$key]=curl_fetch($val);}$time_end = microtime_float();$time = $time_end - $time_start;echo '耗時:{$time}';?>

耗時:0.614秒

2、curl并發訪問方式以及耗時統計

<?phpfunction curl_multi_fetch($urlarr=array()){ $result=$res=$ch=array(); $nch = 0; $mh = curl_multi_init(); foreach ($urlarr as $nk => $url) {$timeout=2;$ch[$nch] = curl_init();curl_setopt_array($ch[$nch], array( CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => $timeout,));curl_multi_add_handle($mh, $ch[$nch]);++$nch; } /* wait for performing request */ do {$mrc = curl_multi_exec($mh, $running); } while (CURLM_CALL_MULTI_PERFORM == $mrc); while ($running && $mrc == CURLM_OK) {// wait for networkif (curl_multi_select($mh, 0.5) > -1) { // pull in new data; do {$mrc = curl_multi_exec($mh, $running); } while (CURLM_CALL_MULTI_PERFORM == $mrc);} } if ($mrc != CURLM_OK) {error_log('CURL Data Error'); } /* get data */ $nch = 0; foreach ($urlarr as $moudle=>$node) {if (($err = curl_error($ch[$nch])) == ’’) { $res[$nch]=curl_multi_getcontent($ch[$nch]); $result[$moudle]=$res[$nch];}else{ error_log('curl error');}curl_multi_remove_handle($mh,$ch[$nch]);curl_close($ch[$nch]);++$nch; } curl_multi_close($mh); return $result;}$url_arr=array( 'taobao'=>'http://www.taobao.com', 'sohu'=>'http://www.sohu.com', 'sina'=>'http://www.sina.com.cn', );function microtime_float(){ list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec);}$time_start = microtime_float();$data=curl_multi_fetch($url_arr);$time_end = microtime_float();$time = $time_end - $time_start; echo '耗時:{$time}';?>

耗時:0.316秒 帥氣吧整個頁面訪問后端接口的時間節省了一半

原文:http://www.searchtb.com/2010/12/using-multicurl-to-improve-performance.html

標簽: PHP
相關文章:
主站蜘蛛池模板: 久久精品福利视频在线观看 | 亚洲欧美在线综合一区二区三区 | 美国免费黄色片 | 国产原创在线观看 | 韩国一级黄色大片 | 女人牲交视频一级毛片 | 国产精品久久久久毛片真精品 | 免费一级毛片在线播放傲雪网 | 欧美日韩成人高清在线播放 | 成年女人天堂香蕉网视频 | 国产黄色在线看 | 91在线免费视频 | 黄色在线视频播放 | 自拍视频网址 | 日韩在线观看第一页 | 91视频入口 | 黄视频在线观看网站 | 香港a毛片免费全部播放 | 一区二区在线看 | 精品国产香蕉伊思人在线又爽又黄 | 中文字幕日韩理论在线 | 欧美性生活视频免费播放网址大全观看 | 欧美日产欧美日产精品 | 免费人成在线观看视频不卡 | 欧美日韩中文一区二区三区 | 亚洲七七久久精品中文国产 | 黄色aa视频| 亚洲午夜精品久久久久久成年 | 中国特黄特级真人毛片 | 成人免费视频观看无遮挡 | 伊人影院99| 国产第一页久久亚洲欧美国产 | 欧美午夜一艳片欧美精品 | 国产精品观看在线亚洲人成网 | 日韩欧美在线第一页 | 亚洲色图综合图片 | 91中文字幕在线一区 | 国产v国产v片大片线观看网站 | 91免费公开视频 | 国产三级三级三级三级 | 91中文字幕在线观看 |