您好,登錄后才能下訂單哦!
今天小編給大家分享的是PHP的curl功能擴展如何使用,很多人都不太了解,今天小編為了讓大家更加了解PHP的curl功能擴展,所以給大家總結了以下內容,一起往下看吧。一定會有所收獲的哦。
PHP的curl功能提供了很多函數,需要將這些函數按特定的步驟組合到一起,我們先來了解下PHP建立curl請求的基本步驟。
$ch = curl_init(); // 創建一個新的CURL資源賦給變量$ch curl_setopt($ch, CURLOPT_URL, $url); // 設置URL $response = curl_exec($ch); // 執行,獲取URL并輸出到瀏覽器 curl_close($ch); // 釋放資源
如果我們希望獲取內容但不輸出,可以使用 CURLOPT_RETURNTRANSFER 參數,并設置其值為非0或者true值。
代碼如下:
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
我們可以通設置函數curl_setopt()的不同參數,可以獲得不同的結果,這也是CURL擴展的強大之處。curl_setopt()函數的常用參數選項具體可查閱官方文檔,此處就不列舉。
下面是我常用的curl get和post請求的方法:
get請求:
public function httpGet(string $url = '') { // 記錄請求信息的日志 // todo try { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 60); //https 請求 if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); } $response = curl_exec($ch); $errorCode = curl_errno($ch); curl_close($ch); if (!empty($errorCode)) { // 可記錄錯誤碼日志 return null; } // 記錄返回結果日志 return $response; } catch (\Exception $e) { $errorLog = [ 'msg' => $e->getMessage(), 'trace' => $e->getTraceAsString(), 'data' => [ 'url' => $url, ] ]; // 記錄錯誤日志 return null; } } ```php
POST請求:
public function httpPost(string $url = '', array $data = []) { // 記錄請求信息的日志 // todo try { $jsonData = json_encode($data); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json; charset=utf-8', 'Content-Length:' . strlen($jsonData) ]); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //https 請求 if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } $result = curl_exec($curl); $errorCode = curl_errno($curl); curl_close($curl); if (!empty($errorCode)) { // 可記錄錯誤碼日志 return null; } // 記錄返回結果日志 return json_decode($result, true); } catch (\Exception $e) { $errorData = [ 'msg' => $e->getMessage(), 'trace' => $e->getTraceAsString(), 'data' => [ 'url' => $url, 'postData' => $data ] ]; // 記錄錯誤日志 return null; } }
關于PHP的curl功能擴展如何使用就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。