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

首頁 > 語言 > PHP > 正文

PHP CURL使用詳解

2024-05-05 00:07:43
字體:
來源:轉載
供稿:網友

PHP CURL是一個非常強大的開源庫,支持很多協議,包括HTTP、FTP、TELNET等,我們使用它來發送HTTP請求。它給我們帶來的好處是可以通過靈活的選項設置不同的HTTP協議參數,并且支持HTTPS。CURL可以根據URL前綴是“HTTP” 還是“HTTPS”自動選擇是否加密發送內容。

使用CURL發送請求的基本流程

使用CURL的PHP擴展完成一個HTTP請求的發送一般有以下幾個步驟:

  • 1、初始化連接句柄;
  • 2、設置CURL選項;
  • 3、執行并獲取結果;
  • 4、釋放VURL連接句柄。

下面的程序片段是使用CURL發送HTTP的典型過程

// 1. 初始化$ch = curl_init();// 2. 設置選項,包括URLcurl_setopt($ch,CURLOPT_URL,"http://www.codetc.com");curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_HEADER,0);// 3. 執行并獲取HTML文檔內容$output = curl_exec($ch);if($output === FALSE ){ echo "CURL Error:".curl_error($ch);}// 4. 釋放curl句柄curl_close($ch);

上述代碼中使用到了四個函數

curl_init() 和 curl_close() 分別是初始化CURL連接和關閉CURL連接,都比較簡單。

curl_exec() 執行CURL請求,如果沒有錯誤發生,該函數的返回是對應URL返回的數據,以字符串表示滿意;如果發生錯誤,該函數返回 FALSE。需要注意的是,判斷輸出是否為FALSE用的是全等號,這是為了區分返回空串和出錯的情況。

CURL函數庫里最重要的函數是curl_setopt(),它可以通過設定CURL函數庫定義的選項來定制HTTP請求。上述代碼片段中使用了三個重要的選項:

  • CURLOPT_URL 指定請求的URL;
  • CURLOPT_RETURNTRANSFER 設置為1表示稍后執行的curl_exec函數的返回是URL的返回字符串,而不是把返回字符串定向到標準輸出并返回TRUE;
  • CURLLOPT_HEADER設置為0表示不返回HTTP頭部信息。

CURL的選項還有很多,可以到PHP的官方網站(http://www.php.net/manual/en/function.curl-setopt.php)上查看CURL支持的所有選項列表。

獲取CURL請求的輸出信息

curl_exec()函數執行之后,可以使用curl_getinfo()函數獲取CURL請求輸出的相關信息,示例代碼如下:

curl_exec($ch);$info = curl_getinfo($sh);echo ' 獲取 '.$info['url'].'耗時'.$info['total_time'].'秒';

上述代碼中curl_getinfo返回的是一個關聯數組,包含以下數據:

  • url:網絡地址。
  • content_type:內容編碼。
  • http_code:HTTP狀態碼。
  • header_size:header的大小。
  • request_size:請求的大小。
  • filetime:文件創建的時間。
  • ssl_verify_result:SSL驗證結果。
  • redirect_count:跳轉計數。
  • total_time:總耗時。
  • namelookup_time:DNS查詢耗時。
  • connect_time:等待連接耗時。
  • pretransfer_time:傳輸前準備耗時。
  • size_uplpad:上傳數據的大小。
  • size_download:下載數據的大小。
  • speed_download:下載速度。
  • speed_upload:上傳速度。
  • download_content_length:下載內容的長度。
  • upload_content_length:上傳內容的長度。
  • starttransfer_time:開始傳輸的時間表。
  • redirect_time:重定向耗時。

curl_getinfo()函數還有一個可選擇參數$opt,通過這個參數可以設置一些常量,對應到上術這個字段,如果設置了第二個參數,那么返回的只有指定的信息。例如設置$opt為CURLINFO_TOTAL_TIME,則curl_getinfo()函數只返回total_time,即總傳輸消耗的時間,在只需要關注某些傳輸信息時,設置$opt參數很有意義。

使用CURL發送GET請求

如何使用CURL來發送GET請求,發送GET請求的關鍵是拼裝格式正確的URL。請求地址和GET數據由一個“?”分割,然后GET變量的名稱和值用“=”分隔,各個GET名稱和值由“&”連接。PHP為我們提供了一個函數專門用來拼裝GET請求和數據部分——http_build_query,該函數接受一個關聯數組,返回由該關聯數據描述的GET請求字符串。使用這個函數,結合CURL發送HTTP請求的一般流程,我們封閉了一個發送GET請求的函數——doCurlGetRequest,具體代碼如下:

/** *@desc 封閉curl的調用接口,get的請求方式。*/function doCurlGetRequest($url,$data,$timeout = 5){ if($curl == "" || $timeout <= 0){ return false; } $url = $url.'?'.http_bulid_query($data); $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout); return curl_exec($con);}

這個函數把使用http_build_query 拼裝好的帶GET參數的URL傳給curl_init函數,然后使用CURL發送HTTP請求。

使用CURL發送POST請求

可以使用CURL提供的選項CURLOPT_POSTFIELDS,設置該選項為POST字符串數據就可以把請求放在正文中。同樣我們實現了一個發送POST請求的函數——doCurlPostRequest,代碼如下:

/**** @desc 封裝 curl 的調用接口,post的請求方式**/function doCurlPostRequest($url,$requestString,$timeout = 5){ if($url == '' || $requestString == '' || $timeout <=0){ return false; } $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST,true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout); return curl_exec($con); }

上面代碼中除了設置CURLOPT_POSTFIELDS外,我們還設置了CURL_POST為true,標識這個請求是一個POST請求。在POST請求中也是可以傳輸GET數據的,只需要在URL中拼裝GET請求數據即可秀。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲bt欧美bt日本bt| 少妇久久久久久| 国产日本欧美一区二区三区在线| 国产精品日韩在线观看| 欧美日韩国产精品| 成人网在线视频| 国产精品日韩精品| 两个人的视频www国产精品| 国产精品视频久久| 亚洲国产天堂久久综合网| 久久久欧美一区二区| 欧美一区二区大胆人体摄影专业网站| 国产成人av网| 国模视频一区二区三区| 亚洲欧美国产一区二区三区| 色婷婷综合久久久久中文字幕1| 91久久国产婷婷一区二区| 按摩亚洲人久久| 日韩精品极品毛片系列视频| 亚洲精品国产综合区久久久久久久| 黑人极品videos精品欧美裸| 亚洲www在线| 欧美天天综合色影久久精品| 亚洲一区二区精品| 国产精品人成电影| 国产亚洲精品成人av久久ww| 亚洲第一视频网| 欧美一级大片视频| 理论片在线不卡免费观看| 在线日韩日本国产亚洲| 97视频人免费观看| 久久视频免费在线播放| 日韩视频免费中文字幕| 好吊成人免视频| 欧美成人精品激情在线观看| 欧美成人激情视频| 色综合久久中文字幕综合网小说| 亚洲精品国产品国语在线| 国产成人一区三区| 中文字幕亚洲一区二区三区五十路| 亚洲欧美一区二区激情| 欧美日韩在线视频观看| 色午夜这里只有精品| 亚洲电影av在线| 国产亚洲综合久久| 正在播放欧美视频| 国产成人免费av| 国产视频自拍一区| 久久躁狠狠躁夜夜爽| 国产精品亚洲片夜色在线| 久久久久久久网站| 亚洲国产精品一区二区三区| 国产成人精品在线观看| 亚洲乱亚洲乱妇无码| 亚洲综合大片69999| 97久久久免费福利网址| 色系列之999| 欧美肥老妇视频| 国产精品免费电影| 国产精品美女久久久久av超清| 欧美成人sm免费视频| 欧美亚洲伦理www| 欧美午夜视频一区二区| 久久久久久亚洲精品中文字幕| 91精品啪aⅴ在线观看国产| 日本精品一区二区三区在线播放视频| 国产a级全部精品| 亚洲精品中文字幕有码专区| 国产精品av免费在线观看| 精品女同一区二区三区在线播放| 中文日韩在线视频| 欧美激情xxxxx| 久久久久久12| 欧美激情视频一区二区| 亚洲一区二区免费| 亚洲欧美一区二区三区在线| 国产成人aa精品一区在线播放| 国产在线日韩在线| 国产精品com| 一区二区成人av| 日本亚洲欧美成人| 亚洲午夜av电影| 久久久人成影片一区二区三区| 日韩精品极品在线观看| 欧美国产日韩xxxxx| 日韩精品中文字幕在线观看| 国产999精品视频| 国产精品热视频| 亚洲女人初尝黑人巨大| 在线视频国产日韩| 奇米影视亚洲狠狠色| 亚洲国产精品久久久久| www.99久久热国产日韩欧美.com| 国产精品都在这里| 九九热精品在线| 97视频免费看| 国产精品九九九| 狠狠躁夜夜躁人人爽超碰91| 亚洲自拍欧美色图| 日韩高清电影免费观看完整| 久久99国产精品自在自在app| 2025国产精品视频| 亚洲欧美制服另类日韩| 国产精品高潮呻吟久久av无限| 欧美日韩精品在线| 亚洲va久久久噜噜噜久久天堂| 亚洲欧美成人一区二区在线电影| 超薄丝袜一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 欧美日韩中国免费专区在线看| 国产精品久久久久不卡| 欧美日韩激情视频| 欧美自拍视频在线| 久久综合久久八八| 色无极影院亚洲| 日韩av在线不卡| 亚洲淫片在线视频| 日韩动漫免费观看电视剧高清| 欧美精品免费在线观看| 国产成人精品久久久| 日韩综合中文字幕| 国产精品久久久久久久一区探花| 国产欧美精品一区二区三区介绍| 精品精品国产国产自在线| 欧美成在线视频| 亚洲丝袜av一区| 欧美成人精品不卡视频在线观看| 日韩中文字幕视频在线观看| 成人黄色在线免费| 免费不卡在线观看av| 日韩电影在线观看免费| 日韩毛片在线看| 亚洲伊人一本大道中文字幕| 国产精品福利观看| 国语自产精品视频在线看| 97热在线精品视频在线观看| 欧美成人国产va精品日本一级| 成人中文字幕+乱码+中文字幕| 伊人男人综合视频网| 九九综合九九综合| 中文字幕免费国产精品| 亚洲一区二区三区777| 亚洲欧美日韩中文在线| 国产精品99久久久久久白浆小说| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲男子天堂网| 久久久久久这里只有精品| 精品国产欧美一区二区五十路| 亚洲一区二区少妇| 成人激情av在线| 日本视频久久久| 色综合久久88| 欧美电影免费观看| 8x拔播拔播x8国产精品| 亚洲视频在线观看视频| 成人黄色在线观看| 国产精品白丝jk喷水视频一区| 狠狠躁夜夜躁人人躁婷婷91| 日韩高清人体午夜| 亚洲一级黄色av| 久久99久久99精品中文字幕| 亚洲国产一区自拍| 欧美视频在线看| 久久久久久18|