微信微博公眾號、QQ公眾號、地圖和很多的第三方功能提供都是採用http 的API(應用程式)形式提供給開發人員的功能。那麼,如何請求微信、地圖等第三方API呢?這時候就需要使用到cURL,本文就來跟大家介紹一下php curl函式庫的應用。
cURL中文翻譯過來叫做基於URL的函數庫。它的主要功能是:使用相關的函數模擬協定請求。
例如:
模擬表單向某個位址發送資料
在無驗證碼的情況下模擬表單完成使用者登陸
上傳某個檔案到遠端伺服器
請求遠端伺服器提供的某些功能
... ...
curl支援dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smtp, smtps, telnet和tftp協定。
curl同時也支援HTTPS認證、HTTP的POST、HTT的PPUT、FTP上傳(這個也能透過PHP的FTP擴充完成)、HTTP基於表單的上傳、代理、cookies和使用者名稱 密碼的認證。
一、初使化curl資源
這只有一句話,就是使用的是curl_init函數。這個參數法面要傳入任何參數。返回curl的操作資源。
因為,我們在後面是透過curl_setopt向curl的操作資源變數壓入資料的。
範例:
$ch = curl_init();
二、參數設定請求的協定位址
curl_setopt函數的詳細使用如下:
說明 | |
函數 | curl_setopt |
curl資源變數
參數2
curl參數選項參數3
curl參數值
CURLOPT_URL 這個參數選項規定了請求的url位址。 curl_setopt($ch, CURLOPT_URL, "http://www.php.cn");
我們希望curl請求後回傳對應的結果。我們要得到對應的結果,也需要設定一個參數,這個參數名為:CURLOPT_RETURNTRANSFER。
若需要傳回值即為1。不需請求後回傳的結果可設定為0。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
如果是get請求,我們不需要設定發送的參數。在post等請求的時候,我們需要設定發送方法為post方法。並設定發送的數據。
*CURLOPT_POST *值設為1是使用POST方法,0為不使用POST方法
CURLOPT_POSTFIELDS設定傳遞的資料
//声明使用POST方式来进行发送 curl_setopt($ch, CURLOPT_POST, 1); //发送什么数据呢 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
如果是https有的時候我們需要忽略https的安全性憑證。
CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST 兩個參數改為false即忽略了憑證。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
CURLOPT_HEADER這個參數又決定是是否處理http的頭訊息,我們不想接收處理的話可將這個值設為0。
curl_setopt($ch, CURLOPT_HEADER, 0);
此外,我們還可以設定請求的逾時時間,參數為:CURLOPT_TIMEOUT。 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
我們在第三步驟中,將CURLOPT_RETURNTRANSFER 參數中將值設為1。如果執行的結果有數據。使用curl_exec執行後,會將結果傳回$output變數。
$output = curl_exec($ch);
七、關閉curl資源
關閉curl資源。因為資源類型,我們一再強調過,有開啟就有關閉。
如果不需要使用,使用curl_close關閉後立刻釋放記憶體。 curl_close($ch);
以上是php curl的功能有什麼? php curl函式庫的應用(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!