中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

php使用curl并發減少后端訪問時間的方法分析
來源:易賢網 閱讀:1115 次 日期:2016-08-23 15:42:26
溫馨提示:易賢網小編為您整理了“php使用curl并發減少后端訪問時間的方法分析”,方便廣大網友查閱!

本文實例講述了php使用curl并發減少后端訪問時間的方法。分享給大家供大家參考,具體如下:

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

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

<?php

function 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并發訪問方式以及耗時統計

<?php

function 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 network

    if (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秒

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

3、curl相關參數

curl_close — Close a cURL session

curl_copy_handle — Copy a cURL handle along with all of its preferences

curl_errno — Return the last error number

curl_error — Return a string containing the last error for the current session

curl_exec — Perform a cURL session

curl_getinfo — Get information regarding a specific transfer

curl_init — Initialize a cURL session

curl_multi_add_handle — Add a normal cURL handle to a cURL multi handle

curl_multi_close — Close a set of cURL handles

curl_multi_exec — Run the sub-connections of the current cURL handle

curl_multi_getcontent — Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set

curl_multi_info_read — Get information about the current transfers

curl_multi_init — Returns a new cURL multi handle

curl_multi_remove_handle — Remove a multi handle from a set of cURL handles

curl_multi_select — Wait for activity on any curl_multi connection

curl_setopt_array — Set multiple options for a cURL transfer

curl_setopt — Set an option for a cURL transfer

curl_version — Gets cURL version information

希望本文所述對大家PHP程序設計有所幫助。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
日韩欧美一区二区视频| 亚洲三级免费观看| 国产精品素人一区二区| 亚洲成人免费在线观看| 床上的激情91.| 91精品国产乱| 樱花影视一区二区| 国产精品夜夜爽| 4438成人网| 亚洲免费av高清| 国产成人精品免费| 日韩你懂的在线观看| 亚洲综合激情网| 色琪琪一区二区三区亚洲区| 久久女同精品一区二区| 美国十次了思思久久精品导航| 91免费国产在线| 国产精品激情偷乱一区二区∴| 激情另类小说区图片区视频区| 91精品婷婷国产综合久久性色| 亚洲午夜精品在线| 欧美在线观看18| 亚洲一区二区三区小说| 91片在线免费观看| 国产精品久久久久一区二区三区 | 精品国产一区二区三区不卡| 一区二区三区在线播| 99久久99久久精品免费观看| 国产精品无遮挡| 国产精品亚洲一区二区三区妖精| 日韩午夜激情电影| 日韩国产在线一| 69av一区二区三区| 免费观看日韩av| 欧美一区二区播放| 蜜桃视频在线观看一区二区| 日韩一区二区三区高清免费看看| 日韩精品一级中文字幕精品视频免费观看| 欧美性色欧美a在线播放| 一区二区三区欧美亚洲| 欧美日韩精品专区| 亚洲国产精品久久久久秋霞影院| 欧美三级视频在线| 日本三级亚洲精品| 欧美精品一区男女天堂| 欧美系列日韩一区| 亚洲国产wwwccc36天堂| 欧美精品三级日韩久久| 男女性色大片免费观看一区二区 | 亚洲天天做日日做天天谢日日欢| 成人性生交大片免费看中文| 综合在线观看色| 91福利在线导航| 日韩精品一二三四| 久久九九久精品国产免费直播| 精品无人码麻豆乱码1区2区| 欧美国产日韩亚洲一区| 91小视频免费观看| 日韩精彩视频在线观看| 久久久精品中文字幕麻豆发布| av一区二区久久| 一区二区三区四区亚洲| 日韩午夜在线观看| 风间由美一区二区三区在线观看 | 成人av电影免费观看| 一区二区三区欧美在线观看| 欧美一区二区三区免费| 国产在线一区二区| 亚洲美女一区二区三区| 欧美成人一区二区| 91在线丨porny丨国产| 日本美女视频一区二区| 国产精品全国免费观看高清| 欧美日韩精品一二三区| 国产精品亚洲专一区二区三区| 亚洲激情图片qvod| 亚洲精品一线二线三线| 97精品超碰一区二区三区| 亚洲成人av一区二区| 国产三级精品三级在线专区| 在线观看欧美日本| 成人午夜电影网站| 日韩av中文在线观看| 中文字幕第一页久久| 5858s免费视频成人| 成人va在线观看| 色综合天天综合色综合av| 久久国产精品免费| 亚洲国产精品人人做人人爽| 中文字幕av一区 二区| 欧美一区二区三区的| 日本韩国一区二区三区视频| 高清视频一区二区| 免费高清成人在线| 亚洲超碰97人人做人人爱| 成人欧美一区二区三区1314| 2019国产精品| 欧美高清视频在线高清观看mv色露露十八| 成人免费视频一区二区| 国产尤物一区二区| 日韩专区中文字幕一区二区| 亚洲精品成人天堂一二三| 欧美国产综合色视频| 久久久综合网站| 精品国产一区二区三区av性色 | 久久久国产精品午夜一区ai换脸| 欧美电影一区二区| 欧美又粗又大又爽| 91黄视频在线| 欧美在线观看18| 欧洲亚洲精品在线| 欧美亚洲综合在线| 色综合夜色一区| 在线区一区二视频| 欧美三级蜜桃2在线观看| 日本高清不卡视频| 欧美性感一区二区三区| 在线影院国内精品| 欧美熟乱第一页| 欧美日韩国产高清一区二区 | 欧美视频在线一区二区三区 | 99精品在线免费| 高清国产一区二区| 成人高清视频免费观看| 国产不卡高清在线观看视频| 国产mv日韩mv欧美| 欧美大片在线观看一区| 精品久久久久久最新网址| 精品国产网站在线观看| 久久久不卡网国产精品一区| 国产视频一区不卡| 中文字幕欧美一区| 亚洲另类一区二区| 天天av天天翘天天综合网色鬼国产 | 色av成人天堂桃色av| 欧美色偷偷大香| 欧美一区二区福利在线| 亚洲精品一区在线观看| 中文字幕一区三区| 亚洲图片有声小说| 老司机午夜精品| 成人av网站在线观看免费| 91福利精品视频| 日韩一区二区三区三四区视频在线观看| 日韩精品一区二区三区老鸭窝| 久久久精品国产99久久精品芒果| 亚洲人成网站精品片在线观看| 亚洲一区二区四区蜜桃| 经典三级一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美性猛片aaaaaaa做受| 91精品国产高清一区二区三区蜜臀 | 日韩免费成人网| 国产精品夫妻自拍| 首页国产丝袜综合| 国产精品一品视频| 欧美视频一区二区三区四区 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产亚洲欧洲997久久综合 | 欧美亚洲国产一区二区三区va| 欧美成人精品二区三区99精品| 一色屋精品亚洲香蕉网站| 免费高清成人在线| 91精彩视频在线| 久久嫩草精品久久久精品| 一区二区三区日韩精品视频| 国产美女视频91| 欧美精品丝袜久久久中文字幕| 国产精品美女视频| 精品亚洲porn| 欧美猛男男办公室激情| 国产精品视频你懂的| 青青草91视频| 欧美日韩在线三区| 亚洲老司机在线| 国产aⅴ综合色| 欧美成人激情免费网| 亚洲图片一区二区| 色综合咪咪久久| 国产精品乱码一区二区三区软件| 日产精品久久久久久久性色| 色婷婷亚洲综合| 中文字幕中文在线不卡住| 国产精品一区在线观看乱码 | 国产真实乱对白精彩久久| 欧美三级日本三级少妇99| 亚洲欧美日韩综合aⅴ视频| 成人黄页在线观看| 国产亚洲欧美日韩俺去了| 久久激情五月婷婷| 日韩欧美亚洲一区二区| 午夜欧美大尺度福利影院在线看| 一本到不卡精品视频在线观看| 日本一区二区动态图| 国产精品1024久久| 偷拍日韩校园综合在线| 欧美三级欧美一级| 日韩一区精品视频| 91精品国产欧美一区二区| 视频一区二区三区中文字幕|