PHP Https Curl的使用教程
在現(xiàn)代社會(huì)中,隨著互聯(lián)網(wǎng)的普及,Web開(kāi)發(fā)技術(shù)也越來(lái)越受到人們的重視。PHP作為一種非常流行的Web開(kāi)發(fā)語(yǔ)言,其內(nèi)置的Curl擴(kuò)展包,讓我們可以像瀏覽器一樣去訪問(wèn)和操作Web資源,并且支持https協(xié)議,安全性更好。今天,我們就來(lái)詳細(xì)講解關(guān)于PHP Https Curl的使用,下面請(qǐng)看具體教程:
發(fā)起https GET請(qǐng)求:
當(dāng)我們需要從服務(wù)器獲取數(shù)據(jù)時(shí),通常采用GET方式。以百度搜索為例,請(qǐng)求URL為 "https://www.baidu.com/s?wd=php%20curl",請(qǐng)求代碼如下:
$url = 'https://www.baidu.com/s?wd=php%20curl'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //關(guān)閉SSL驗(yàn)證證書 $response = curl_exec($ch); curl_close($ch);上述代碼中, $url 是需要請(qǐng)求的URL,$ch 是curl句柄,使用 curl_setopt 設(shè)置curl參數(shù),CURLOPT_URL 表示請(qǐng)求url,CURLOPT_RETURNTRANSFER 表示將請(qǐng)求結(jié)果存放在變量中,CURLOPT_SSL_VERIFYPEER 表示對(duì)SSL證書的驗(yàn)證,設(shè)置為false時(shí),表示關(guān)閉SSL驗(yàn)證證書。 發(fā)起https POST請(qǐng)求: 當(dāng)我們需要提交數(shù)據(jù)時(shí),通常采用POST方式。以爬蟲(chóng)獲取博客園文章為例,請(qǐng)求URL為 "https://www.cnblogs.com/mvc/AggSite/PostList.aspx",請(qǐng)求代碼如下:
$url = 'https://www.cnblogs.com/mvc/AggSite/PostList.aspx'; $data = [ 'CategoryId' =>808, 'CategoryType' =>'SiteHome', 'ItemListActionName' =>'AggSitePostList' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $response = curl_exec($ch); curl_close($ch);上述代碼中,$data 是需要提交的數(shù)據(jù), $ch 是curl句柄,使用 curl_setopt 設(shè)置curl參數(shù),CURLOPT_POST 表示需要發(fā)起POST請(qǐng)求,CURLOPT_POSTFIELDS 表示需要提交的數(shù)據(jù)。 獲取https響應(yīng)頭信息: 有時(shí)候,我們需要獲取服務(wù)器的響應(yīng)頭信息,比如Content-Type、Cookie等。使用curl_getinfo函數(shù)即可獲取到。以github返回一個(gè)用戶的信息為例,請(qǐng)求URL為 "https://api.github.com/users/octocat",請(qǐng)求代碼如下:
$url = 'https://api.github.com/users/octocat'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); $response = curl_exec($ch); $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($response, 0, $headerSize); curl_close($ch);上述代碼中,使用 CURLOPT_HTTPHEADER 設(shè)置請(qǐng)求頭信息,使用 CURLOPT_HEADER_SIZE 獲取響應(yīng)頭信息長(zhǎng)度,使用substr函數(shù)截取響應(yīng)頭信息。 總結(jié): PHP Curl擴(kuò)展包的連接池特性,以及對(duì)代理和cookie的支持,讓我們?cè)赪eb開(kāi)發(fā)中更加方便快捷的訪問(wèn)和操作服務(wù)器資源。本篇文章通過(guò)講解PHP Https Curl的使用教程,希望能幫助到大家。