您好,登錄后才能下訂單哦!
這篇文章主要介紹了PHP curl、get、post請求怎么封裝函數(shù)的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇PHP curl、get、post請求怎么封裝函數(shù)文章都會有所收獲,下面我們一起來看看吧。
//get請求 function getUrl($url, $header = []) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPGET, true); if ($header) { curl_setopt($ch, CURLOPT_HTTPHEADER, $header); } curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設(shè)置超時時間:30s curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。- curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關(guān)鍵,就是允許你查看請求header $output = curl_exec($ch); if (!$output) { // echo "request $url fail:", (array)curl_error($ch); //記錄日志 } curl_close($ch); // echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志 return $output; }
//del請求 function delUrl($url, $header = []) { $ch = curl_init(); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設(shè)置超時時間:30s curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。- curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關(guān)鍵,就是允許你查看請求header curl_setopt($ch, CURLOPT_URL, $url); $output = curl_exec($ch); if (!$output) { // echo "request $url fail:", (array)curl_error($ch); //記錄日志 } curl_close($ch); // echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志 return $output; }
//put請求 function putUrl($url, $data = [], $header = []) { $ch = curl_init(); if (!empty($data)) { curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //定義提交的數(shù)據(jù) } curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設(shè)置超時時間:30s curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。- curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關(guān)鍵,就是允許你查看請求header curl_setopt($ch, CURLOPT_URL, $url); $output = curl_exec($ch); if (!$output) { // echo "request $url fail:", (array)curl_error($ch); //記錄日志 } curl_close($ch); // echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志 return $output; }
//post請求 function postUrl($url, $data, $header = []) { $ch = curl_init(); if (!empty($data)) { curl_setopt($ch, CURLOPT_POST,true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設(shè)置超時時間:30s curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。- curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關(guān)鍵,就是允許你查看請求header curl_setopt($ch, CURLOPT_URL, $url); $output = curl_exec($ch); if (!$output) { // echo "request $url fail:", (array)curl_error($ch); //記錄日志 } curl_close($ch); // echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志 return $output; }
//post json 請求 function postJsonUrl($url, $data, $header = []) { $data = json_encode($data); $ch = curl_init(); if (!empty($data)) { curl_setopt($ch, CURLOPT_POST,true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } $header[]='Content-Type: application/json; charset=utf-8'; curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //為true,則會跟蹤爬取重定向頁面,否則,不會跟蹤重定向頁面 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設(shè)置超時時間:30s curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl檢測 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。- curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 時追蹤句柄的請求字符串,從 PHP 5.1.3 開始可用。這個很關(guān)鍵,就是允許你查看請求header curl_setopt($ch, CURLOPT_URL, $url); $output = curl_exec($ch); if (!$output) { // echo "request $url fail:", (array)curl_error($ch); //記錄日志 } curl_close($ch); // echo "request $url success:" . json_encode(array($url, $header, $output), true); //記錄日志 return $output; }
可以在接口請求日志信息中記錄運(yùn)行時間,以便以后排查問題(程序執(zhí)行緩慢,是哪個接口拖了時間)
代碼
$startTime = microtime(true); for ($i = 0; $i < 9999999; $i++) { }; $endTime = microtime(true); $runTime = sprintf('%.6f', ($endTime-$startTime)); echo "執(zhí)行時間為:{$runTime} s"; die;
打印
執(zhí)行時間為:0.202176 s
PS:針對常見的post、get、put、delete等請求方式,筆者經(jīng)常使用postman或者ApiFox進(jìn)行請求測試,并且通常前后端傳輸數(shù)據(jù)以json為主。
關(guān)于“PHP curl、get、post請求怎么封裝函數(shù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“PHP curl、get、post請求怎么封裝函數(shù)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。