好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP封裝請求類實例分析【基于Yii框架】

PHP封裝請求類實例分析【基于Yii框架】

熱門標簽:太原極信防封電銷卡 電銷招聘機器人 天津營銷電話機器人加盟代理 熱線電話機器人 事業(yè)單位如何百度地圖標注 福泉電話機器人 南寧crm外呼系統(tǒng)平臺 格陵蘭島地圖標注 地圖標注入哪個科目

本文實例講述了PHP封裝請求類。分享給大家供大家參考,具體如下:

1.源碼

?php
namespace app\common\components;
use Yii;
use app\common\services\BaseService;
class HttpClient extends BaseService{
  private static $headers = [];
  private static $cookie = null;
  public static function get($url, $param =[]) {
    return self::curl($url, $param,"get");
  }
  public static function post($url, $param,$extra = [] ) {
    return self::curl($url, $param,"post");
  }
  protected static function curl($url, $param, $method = 'post')
  {
    $calculate_time1 = microtime(true);
    // 初始華
    $curl = curl_init();
    // 設置url
    curl_setopt($curl, CURLOPT_URL, $url);
    // 設置為0表示不返回HTTP頭部信息
    curl_setopt($curl, CURLOPT_HEADER, 0);
    // 設置為1返回將curl_exec()獲取的信息以字符串返回,而不是直接輸出 設置為0返回true/false
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // TRUE 將在安全傳輸時輸出 SSL 證書信息到 STDERR。
    curl_setopt($curl, CURLOPT_CERTINFO , true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    // FALSE 禁止 cURL 驗證對等證書
    // 交換證書可以在 CURLOPT_CAINFO 選項中設置,CURLOPT_CAPATH中設置證書目錄。
      curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
      if( isset( Yii::$app->params['curl'] )  isset(Yii::$app->params['curl']['timeout']) ){
      curl_setopt($curl, CURLOPT_TIMEOUT, Yii::$app->params['curl']['timeout']);
    }else{
      curl_setopt($curl, CURLOPT_TIMEOUT, 5);
    }
    // array_key_exists — 檢查數組里是否有指定的鍵名或索引
      // CURLOPT_USERAGENT在HTTP請求中包含一個"User-Agent: "頭的字符串
    if(array_key_exists("HTTP_USER_AGENT",$_SERVER)){
      curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    }
    // CURLOPT_HTTPHEADER設置 HTTP 頭字段的數組。格式: array('Content-type: text/plain', 'Content-length: 100')
    if(!empty(self::$headers)){
      $headerArr = [];
      foreach( self::$headers as $n => $v ) {
        $headerArr[] = $n .': ' . $v;
      }
      curl_setopt ($curl, CURLOPT_HTTPHEADER , $headerArr ); //構造IP
    }
    // CURLOPT_COOKIE設定 HTTP 請求中"Cookie: "部分的內容。多個 cookie 用分號分隔,分號后帶一個空格(例如, "fruit=apple; colour=red")。
    if( self::$cookie ){
      curl_setopt($curl, CURLOPT_COOKIE, self::$cookie);
    }
    // post處理 :TRUE 時會發(fā)送 POST 請求,類型為:application/x-www-form-urlencoded,是 HTML 表單提交時最常見的一種。
    if ($method == 'post')
    {
      curl_setopt($curl, CURLOPT_POST, TRUE);
      // 如果為數組就變成字符串
      if(is_array($param)){
        $param = http_build_query($param);
      }
      // 全部數據使用HTTP協(xié)議中的 "POST" 操作來發(fā)送。 要發(fā)送文件,在文件名前面加上@前綴并使用完整路徑。
      curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
    }else{
      //get請求
      curl_setopt($curl, CURLOPT_POST, FALSE);
    }
    // 執(zhí)行輸出
    $info = curl_exec($curl);
    //log:返回最后一次的錯誤代碼
    $_errno = curl_errno($curl);
    $_error = '';
    if($_errno)
    {
      // 返回當前會話最后一次錯誤的字符串
      $_error = curl_error($curl);
    }
    curl_close($curl);
    // 花費的時間
    $calculate_time_span = microtime(true) - $calculate_time1;
    $log = \Yii::$app->getRuntimePath().DIRECTORY_SEPARATOR.'curl.log';
    // int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
    file_put_contents($log,date('Y-m-d H:i:s')." [ time:{$calculate_time_span} ] url: {$url} \nmethod: {$method} \ndata: ".json_encode($param)." \nresult: {$info} \nerrorno: {$_errno} error: {$_error} \n",FILE_APPEND);
    if( $_error ){
      return self::_err( $_error );
    }
    return $info;
  }
  public static function setHeader($header){
     self::$headers = $header;
  }
  public static function setCookie( $cookie ){
    self::$cookie = $cookie;
  }
}

2.分析

microtime()
函數返回當前 Unix 時間戳的微秒數。
當設置為 TRUE 時,規(guī)定函數應該返回一個浮點數,否則返回一個字符串。默認為 FALSE。

詳細的各種分析寫在代碼里面了

3.總結

總結就是get與post差不多(初始化執(zhí)行關閉) 選項也差不多  就是在方式上面會有些差別!

更多關于Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優(yōu)秀開發(fā)框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP實現支持GET,POST,Multipart/form-data的HTTP請求類
  • php處理restful請求的路由類分享
  • 通過JS和PHP兩種方法判斷用戶請求時使用的瀏覽器類型
  • php自定義類fsocket模擬post或get請求的方法
  • 解讀PHP的Yii框架中請求與響應的處理流程
  • YII2框架中使用yii.js實現的post請求
  • yii2 在控制器中驗證請求參數的使用方法
  • Yii框架通過請求組件處理get,post請求的方法分析
  • Yii 框架控制器創(chuàng)建使用及控制器響應操作示例
  • Yii框架響應組件用法實例分析
  • Yii2框架RESTful API 格式化響應,授權認證和速率限制三部分詳解
  • YII Framework學習之request與response用法(基于CHttpRequest響應)

標簽:金華 香港 郴州 佳木斯 阿克蘇 通化 自貢 寶雞

巨人網絡通訊聲明:本文標題《PHP封裝請求類實例分析【基于Yii框架】》,本文關鍵詞  PHP,封裝,請求,類,實例分析,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP封裝請求類實例分析【基于Yii框架】》相關的同類信息!
  • 本頁收集關于PHP封裝請求類實例分析【基于Yii框架】的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久99国产精品久久99 最新章节 男女嘿咻嘿咻动态gif图 | 美女的隐私视频黄www软件| github下载| 国产精品久久久久久精品毛片| 欧美视频第一区| 三级全黄的视频| 男男情趣玩具play高H| 日本边添边摸边做边爱的导演介绍| 91视频污污版| 国产日韩欧美综合色视频在线| 爽?躁多水?快?高潮了医生| 舔她的下体流水| 高冷女警被辱高h系列| 国产一区二区高清在线| 久操视频免费在线观看| 我的小姨在线观看免费中文| 日本一本在线| 红桃精品??国产精品| 亚洲一区二区三区播放在线| 久久久久久久久久久久| 色花堂国产精品首页第一页| 131美女爰做视频午夜免费| 国产精品无码亚洲专区| 国产浮力草草影院ccyy| 一级婬片A片AAAA片老牛| 韩国美女高清爽快一级毛片| 男男H开荤粗肉H文1v1| 滚床单视频在线观看网站| 我被拉拉口的好爽| 69乐园夫妇交友群| 一级a爱做片性视频全过程| 欧亚精品乱码久久久A片免费| 榴莲香蕉草莓向日葵丝瓜榴莲免费 | 啊灬啊别停灬用力啊老师黑人视频| 理论片ok电影天堂午夜剧场| 插女人下面视频| 性欧美高清BBWHD| 国产高颜值百合手指高速水声| 周秀娜床戏18分钟视频| 啊┅┅快┅┅用力啊江玉燕视频| 久久九九精品一区二区|