1. 程式人生 > >巧妙解決PHP中curl返回false值的方法

巧妙解決PHP中curl返回false值的方法

在這裡插入圖片描述
PHP開發中經常會遇到各種問題,就比如PHP中curl返回flase的情況應該如何解決,就這個問題本文給大家詳細解答一下。
首先來看一個封裝的curl函式
function request_post($url = ‘’, KaTeX parse error: Expected '}', got 'EOF' at end of input: … if (empty(url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
c

u r l = c u r l i n
i t ( ) ; / / c
u r l c u r l s e t o p t ( curl = curl_init();//初始化curl curl_setopt( curl, CURLOPT_URL, p o s t U r l ) ; / / c u r l s e t o p t ( postUrl);//抓取指定網頁 curl_setopt( curl, CURLOPT_HEADER, 0);//設定header
curl_setopt( c u r l , C U R L O P T R E T U R N T R A N S F E R , 1 ) ; / / c u r l s e t o p t ( curl, CURLOPT_RETURNTRANSFER, 1);//要求結果為字串且輸出到螢幕上 curl_setopt( curl, CURLOPT_POST, 1);//post提交方式
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);//提交的引數
d a t a = c u r l e x e c ( data = curl_exec( curl);//執行curl
curl_close($curl);
return KaTeX parse error: Expected 'EOF', got '}' at position 7: data; }̲ 呼叫…curl)獲取錯誤也是 string(0) “” 空字串。
最後發現自己呼叫的api的介面地址是ssl協議的,然後加上下面兩個就可以了
curl_setopt( c u r l , C U R L O P T S S L V E R I F Y P E E R , f a l s e ) ; c u r l s e t o p t ( curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt( curl, CURLOPT_SSL_VERIFYHOST, false);
如果curl請求的地址中含有空格也會返回false的,這塊也要格外注意。 之前還遇到過一個返回false列印curl_error(KaTeX parse error: Double subscript at position 166: …_HTTP_VERSION_1_̲0 (強制使用 HTTP/1.…curlp, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
文章來自:https://www.itjmd.com/news/show-5303.html