亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現的CURL非阻塞調用類

2024-05-05 00:04:44
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的CURL非阻塞調用類。分享給大家供大家參考,具體如下:

前面一篇《PHP實現非阻塞模式的方》文章講述了PHP中實現非阻塞模式,其實如果只是HTTP的話,直接用CURL就能實現。

基于網上的一段代碼,修改完善后封裝了一個支持POST/GET的非阻塞調用類。

歡迎測試bug~~~~~

/***************************************************** CURL 非阻塞調用類 Auther: Linvo Copyright(C) 2010/10/21*******************************************************//*  // 使用范例  // 傳入參數說明  // url 請求地址  // data POST方式數據  //并發調用  $param1 = array(      array(        'url' => "http://localhost/a.php?s=1",        ),      array(        'url' => "http://localhost/a.php?s=1",        'data' => array('aaa' => 1, 'bbb' => 2),        ),      );  //單個調用  $param2 = array(      'url' => "http://localhost/a.php?s=0",      'data' => array('aaa' => 1, 'bbb' => 2),      );  //單個調用(GET簡便方式)  $param3 = 'http://localhost/a.php?s=2';  $ac = new AsyncCURL();  $ac->set_param($param1);  $ret = $ac->send();  //返回值為請求參數順序的結果數組(元素值為False表示請求錯誤)  var_dump($ret);*/class AsyncCURL{  /**   * 是否需要返回HTTP頭信息   */  public $curlopt_header = 0;  /**   * 單個CURL調用超時限制   */  public $curlopt_timeout = 20;  private $param = array();  /**   * 構造函數(可直接傳入請求參數)   *   * @param array 可選   * @return void   */  public function __construct($param = False)  {    if ($param !== False)    {      $this->param = $this->init_param($param);    }  }  /**   * 設置請求參數   *   * @param array   * @return void   */  public function set_param($param)  {    $this->param = $this->init_param($param);  }  /**   * 發送請求   *   * @return array   */  public function send()  {    if(!is_array($this->param) || !count($this->param))    {      return False;    }    $curl = $ret = array();    $handle = curl_multi_init();    foreach ($this->param as $k => $v)    {      $param = $this->check_param($v);      if (!$param) $curl[$k] = False;      else $curl[$k] = $this->add_handle($handle, $param);    }    $this->exec_handle($handle);    foreach ($this->param as $k => $v)    {      if ($curl[$k])      {        $ret[$k] = curl_multi_getcontent($curl[$k]);        curl_multi_remove_handle($handle, $curl[$k]);      } else {        $ret[$k] = False;      }    }    curl_multi_close($handle);    return $ret;  }  //以下為私有方法  private function init_param($param)  {    $ret = False;    if (isset($param['url']))    {      $ret = array($param);    } else {      $ret = isset($param[0]) ? $param : False;    }    return $ret;  }  private function check_param($param = array())  {    $ret = array();    if (is_string($param))    {      $url = $param;    } else {      extract($param);    }    if (isset($url))    {      $url = trim($url);      $url = stripos($url, 'http://') === 0 ? $url : NULL;    }    if (isset($data) && is_array($data) && !empty($data))    {      $method = 'POST';    } else {      $method = 'GET';      unset($data);    }    if (isset($url)) $ret['url'] = $url;    if (isset($method)) $ret['method'] = $method;    if (isset($data)) $ret['data'] = $data;    $ret = isset($url) ? $ret : False;    return $ret;  }  private function add_handle($handle, $param)  {    $curl = curl_init();    curl_setopt($curl, CURLOPT_URL, $param['url']);    curl_setopt($curl, CURLOPT_HEADER, $this->curlopt_header);    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($curl, CURLOPT_TIMEOUT, $this->curlopt_timeout);    if ($param['method'] == 'POST')    {      curl_setopt($curl, CURLOPT_POST, 1);      curl_setopt($curl, CURLOPT_POSTFIELDS, $param['data']);    }    curl_multi_add_handle($handle, $curl);    return $curl;  }  private function exec_handle($handle)  {    $flag = null;    do {      curl_multi_exec($handle, $flag);    } while ($flag > 0);  }}

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品成人av| 欧美xxxx18性欧美| 欧美在线性视频| 亚洲日本aⅴ片在线观看香蕉| 国产一区二区激情| 国产精品视频免费在线观看| 亚洲欧美精品一区二区| 中文字幕在线视频日韩| 日本国产精品视频| 亚洲精品视频久久| 国产成人一区二区| 成人免费看吃奶视频网站| 精品久久久一区| 国产欧美精品一区二区三区-老狼| 国产视频亚洲视频| 国产美女主播一区| 日韩av三级在线观看| 精品人伦一区二区三区蜜桃免费| 日韩成人av网址| 欧美成人激情图片网| 欧美性少妇18aaaa视频| 亚洲一区二区免费在线| 国产精品国模在线| 日本久久亚洲电影| 视频在线观看一区二区| 国产精自产拍久久久久久| 欧美日韩中文字幕在线视频| 国产精品爽黄69| 欧美专区在线播放| 精品五月天久久| 欧美高清不卡在线| 日韩av网站导航| 欧美性猛xxx| 国产婷婷色综合av蜜臀av| 欧美一区二区三区艳史| 成人激情视频在线| 亚洲人av在线影院| 国产va免费精品高清在线观看| 国产精品激情av在线播放| 日本三级久久久| 中文字幕久久久av一区| 欧美国产高跟鞋裸体秀xxxhd| 久久婷婷国产麻豆91天堂| 亚洲精品ady| 亚洲精品久久久一区二区三区| 色综合色综合网色综合| 亚洲久久久久久久久久| 一区二区亚洲欧洲国产日韩| 国产精品第100页| 亚洲最新在线视频| 久久久久亚洲精品国产| 久久午夜a级毛片| 国产精品入口免费视频一| 欧美人与性动交a欧美精品| 国产91在线播放九色快色| 日韩国产欧美精品一区二区三区| 91久久在线播放| 国产精品国产自产拍高清av水多| 亚洲欧美激情四射在线日| 国产精品亚洲精品| 日韩视频在线一区| 国产午夜精品理论片a级探花| 91精品国产91久久久久久不卡| 欧美日韩在线视频一区二区| 久久91超碰青草是什么| 欧美黄色成人网| 亚洲偷熟乱区亚洲香蕉av| 狠狠久久五月精品中文字幕| 亚洲成人激情在线观看| 色多多国产成人永久免费网站| 成年无码av片在线| 国产精品久久久久久久久久久久久久| 69av成年福利视频| 国产欧美日韩精品在线观看| 日韩电影免费观看在线| 国产女精品视频网站免费| 亚洲精品www久久久久久广东| 亚洲成人亚洲激情| 欧美国产日韩一区二区| 国产一区二区三区视频免费| 亚洲国产精品va在线观看黑人| 91网在线免费观看| 日韩中文字幕视频在线观看| 成人国产在线视频| 亚洲伊人一本大道中文字幕| 91精品国产91久久久久久久久| 日韩高清a**址| 成人激情av在线| 国产精品成人在线| 久久视频在线看| 亚洲性无码av在线| 国产精品亚洲片夜色在线| 欧美一级免费看| 亚洲免费人成在线视频观看| 久久久久久噜噜噜久久久精品| 亚洲电影免费观看高清完整版在线| 久久精品国产精品亚洲| 精品国产视频在线| 亚洲成人激情视频| 91久久久亚洲精品| 欧美专区第一页| 欧美性开放视频| 亚州精品天堂中文字幕| 久久久久久国产免费| 欧美天天综合色影久久精品| 色综合久久精品亚洲国产| 国产精品盗摄久久久| 久久久久久久久中文字幕| 91精品国产91| 亚洲国产福利在线| 亚洲天堂精品在线| 亚洲成人网久久久| 欧美成人全部免费| 日韩一区二区在线视频| 国产精品一区二区三区在线播放| 欧洲成人在线观看| 国自产精品手机在线观看视频| 亚洲午夜国产成人av电影男同| www国产精品com| 午夜精品在线观看| 日韩精品免费一线在线观看| 最近的2019中文字幕免费一页| 亚洲国产精品va| 国产91精品青草社区| 成人a在线观看| 久久亚洲私人国产精品va| 深夜精品寂寞黄网站在线观看| 日本久久精品视频| 97视频免费看| 国产精品网红直播| 91亚洲国产成人精品性色| 亚洲激情第一页| 亚洲欧洲偷拍精品| 亚洲欧洲国产伦综合| 国产精品普通话| 一本色道久久综合狠狠躁篇的优点| 日韩欧美中文字幕在线观看| 91久久综合亚洲鲁鲁五月天| 日韩h在线观看| 精品毛片三在线观看| 日韩一区二区久久久| 中文字幕日韩av电影| 色综合久久久久久中文网| 国产精品日日摸夜夜添夜夜av| 亚洲国产精品成人va在线观看| 国产精品日韩欧美| 日韩精品高清在线观看| 久久久免费电影| 久久精品视频导航| 成人黄色在线观看| 91av视频在线| 国产精品日日做人人爱| 久久精品视频一| 国产精品欧美一区二区三区奶水| 日韩va亚洲va欧洲va国产| 亚洲精品第一国产综合精品| 亚洲国产精品久久精品怡红院| 日韩av手机在线观看| 日韩欧美在线国产| 国产精品美女久久久久久免费| 欧美精品生活片| 亚洲人成电影在线| 日本sm极度另类视频| 国产午夜精品视频|