摘要:使用詳解是一個非常強(qiáng)大的開源庫,支持很多協(xié)議,包括等,我們使用它來發(fā)送請求。它給我們帶來的好處是可以通過靈活的選項設(shè)置不同的協(xié)議參數(shù),并且支持??梢愿鶕?jù)前綴是還是自動選擇是否加密發(fā)送內(nèi)容。傳輸前準(zhǔn)備耗時。上傳內(nèi)容的長度。
PHP使用CURL詳解
Curl是一個非常強(qiáng)大的開源庫,支持很多協(xié)議,包括HTTP、FTP、TELNET等,我們使用它來發(fā)送HTTP請求。它給我 們帶來的好處是可以通過靈活的選項設(shè)置不同的HTTP協(xié)議參數(shù),并且支持HTTPS。CURL可以根據(jù)URL前綴是“HTTP” 還是“HTTPS”自動選擇是否加密發(fā)送內(nèi)容。
使用方法使用CURL的PHP擴(kuò)展完成一個PHP的請求,一般分為四個步驟:
初始化Curl連接句柄
設(shè)置屬性選項
執(zhí)行獲取結(jié)果,處理異常
關(guān)閉Curl連接句柄
實(shí)例/*get請求*/ function curlGet($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if (($tmp = curl_exec($ch)) === false) { return false; } curl_close($ch); return $tmp; } /*post請求*/ function curlPost($url, $params) { $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER,FALSE); curl_setopt($ch, CURLOPT_NOBODY, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); curl_setopt($ch, CURLOPT_TIMEOUT, 120); curl_setopt($ch, CURLOPT_POST,TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); if ($ssl){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何證書 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 檢查證書中是否設(shè)置域名 } if (($returnData = curl_exec($ch)) === false) { return false; } curl_close($ch); return $returnData; }
說明:
通過curl_init($url);初始化連句柄,也可以通過選項設(shè)置curl_setopt($ch, CURLOPT_URL, $url);參數(shù)為請求的地址
通過curl_setopt()設(shè)置連接的選項,CURLOPT_RETURNTRANSFER 設(shè)置為1表示稍后執(zhí)行的curl_exec函數(shù)的返回是URL的返回字符串,而不是把返回字符串定向到標(biāo)準(zhǔn)輸出并返回TRUE;其他選項設(shè)置參考http://www.php.net/manual/en/...
($tmp = curl_exec($ch)獲取請求結(jié)果
curl_close($ch)釋放連接
獲取CURL的請求輸出參數(shù)在curl_exec()函數(shù)執(zhí)行之后,可以使用curl_getinfo()函數(shù)獲取CURL請求輸出的相關(guān)信息,示例代碼如下:
curl_exec($ch); $info = curl_getinfo($sh);
curl_getinfo()輸出是一個數(shù)組,包含以下數(shù)據(jù):
url:網(wǎng)絡(luò)地址。
content_type:內(nèi)容編碼。
http_code:HTTP狀態(tài)碼。
header_size:header的大小。
request_size:請求的大小。
filetime:文件創(chuàng)建的時間。
ssl_verify_result:SSL驗證結(jié)果。
redirect_count:跳轉(zhuǎn)計數(shù)。
total_time:總耗時。
namelookup_time:DNS查詢耗時。
connect_time:等待連接耗時。
pretransfer_time:傳輸前準(zhǔn)備耗時。
size_uplpad:上傳數(shù)據(jù)的大小。
size_download:下載數(shù)據(jù)的大小。
speed_download:下載速度。
speed_upload:上傳速度。
download_content_length:下載內(nèi)容的長度。
upload_content_length:上傳內(nèi)容的長度。
starttransfer_time:開始傳輸?shù)臅r間表。
redirect_time:重定向耗時。
curl_getinfo()函數(shù)還有一個可選擇參數(shù)$opt,通過這個參數(shù)可以設(shè)置一些常量,對應(yīng)到上術(shù)這個字段,如果設(shè)置了第二個參數(shù),那么返回的只有指定的信息。例如設(shè)置$opt為CURLINFO_TOTAL_TIME,則curl_getinfo()函數(shù)只返回total_time,即總傳輸消耗的時間
參考:
http://www.php.net/manual/zh/...
http://www.cnblogs.com/manong...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22383.html
摘要:不支持多進(jìn)程,如果需要異步請求,非阻塞的方式,請選擇。時會發(fā)送請求,類型為,是表單提交時最常見的一種。允許函數(shù)執(zhí)行的最長秒數(shù)。設(shè)定請求中部分的內(nèi)容。常規(guī)的使用來請求,功能強(qiáng)大,使用方便,按需配置。 在PHP后端的開發(fā)過程中,除了獲取數(shù)據(jù)庫的數(shù)據(jù)和處理數(shù)據(jù)的內(nèi)部邏輯,往往還需要請求其他服務(wù)器接口的數(shù)據(jù),我們一般有3種方式來獲取數(shù)據(jù),分別是: file_get_contents fsoc...
摘要:服務(wù)器定時任務(wù)服務(wù)器定時任務(wù)需要你是獨(dú)立的服務(wù)器,或者是,總之就是對系統(tǒng)的配置有足夠的權(quán)限,虛擬空間就不要折騰這個方法了,因為你沒有權(quán)限。 文章轉(zhuǎn)載自:問說網(wǎng) ? 詳解PHP設(shè)置定時任務(wù)的實(shí)現(xiàn)方法地址:http://www.uedsc.com/php-timing-task.html 定時運(yùn)行任務(wù)對于一個網(wǎng)站來說,是一個比較重要的任務(wù),比如定時發(fā)布文檔,定時清理垃圾信息等,現(xiàn)在的網(wǎng)站大...
摘要:編譯參數(shù)使用在源代碼目錄中,該命令可以查看所有編譯參數(shù)以及對應(yīng)的英文解釋編譯參數(shù)說明指定安裝目錄整合指定位置指定額外拓展配置歸放處文件夾打開安全模式打開的支持打開對的支持打開對 編譯參數(shù)-使用 ./configure -h在源代碼目錄中,該命令可以查看所有編譯參數(shù)以及對應(yīng)的英文解釋 編譯參數(shù)-說明 --prefix=/opt/php //指定 ...
摘要:編譯參數(shù)使用在源代碼目錄中,該命令可以查看所有編譯參數(shù)以及對應(yīng)的英文解釋編譯參數(shù)說明指定安裝目錄整合指定位置指定額外拓展配置歸放處文件夾打開安全模式打開的支持打開對的支持打開對 編譯參數(shù)-使用 ./configure -h在源代碼目錄中,該命令可以查看所有編譯參數(shù)以及對應(yīng)的英文解釋 編譯參數(shù)-說明 --prefix=/opt/php //指定 ...
摘要:不支持多線程模式和回調(diào)處理,因此內(nèi)部腳本都是同步阻塞式的,如果你發(fā)起一個的請求,那么程序就會阻塞,直到請求返回結(jié)果,才會繼續(xù)執(zhí)行代碼。參考資料手冊手冊預(yù)定義常量中實(shí)現(xiàn)多線程請求詳解每次使用同時并發(fā)多少請求合適簡書多線程及原理 后端服務(wù)開發(fā)中經(jīng)常會有并發(fā)請求的需求,比如你需要獲取10家供應(yīng)商的帶寬數(shù)據(jù)(每個都提供不同的url),然后返回一個整合后的數(shù)據(jù),你會怎么做呢? 在PHP中,最直觀...
閱讀 1658·2023-04-25 14:12
閱讀 1137·2021-08-27 16:24
閱讀 2571·2019-08-30 15:44
閱讀 2943·2019-08-30 13:16
閱讀 1712·2019-08-29 14:10
閱讀 1004·2019-08-29 13:54
閱讀 1337·2019-08-29 13:09
閱讀 1858·2019-08-26 18:37