首先來看乙個封裝的curl函式
function request_post($url = '', $param = '')
$posturl = $url;
$curlpost = $param;
$curl = curl_init();//初始化curl
curl_setopt($curl, curlopt_url,$posturl);//抓取指定網頁
curl_setopt($curl, curlopt_header, 0);//設定header
curl_setopt($curl, curlopt_returntransfer, 1);//要求結果為字串且輸出到螢幕上
curl_setopt($curl, curlopt_post, 1);//post提交方式
curl_setopt($curl, curlopt_postfields, $curlpost);//提交的引數
$data = curl_exec($curl);//執行curl
curl_close($curl);
return $data;
}
呼叫的時候返回結果為bool(false)
我們在curl_exec
函式前面通過curl_error($curl)
獲取錯誤也是string(0) ""
空字串。
最後發現自己呼叫的api的介面位址是ssl
協議的,然後加上下面兩個就可以了
curl_setopt($curl, curlopt_ssl_verifypeer, false);
curl_setopt($curl, curlopt_ssl_verifyhost, false);
如果curl
請求的位址中含有空格也會返回false
的,這塊也要格外注意。
之前還遇到過乙個返回false
列印curl_error($curl)
得到的是如下錯誤
string(39) "problem (2) in the chunked-encoded data" bool(false)
這個錯誤的解決辦法設定curl使用的http協議版本,就是加上下面這句
//curl_http_version_1_0 (強制使用 http/1.0)
//curl_http_version_1_1 (強制使用 http/1.1)。
php中curl返回false的解決辦法
首先來看乙個封裝的curl函式 function request post url param posturl url curlpost param curl curl init 初始化curl curl setopt curl,curlopt url,posturl 抓取指定網頁 curl set...
php中0和false的區別
在php中判斷boolean值是經常要用到的,想if語句,for語句,這些條件的執行很大一部分都是靠boolean來判斷的,很多時候false也等於0,當我們要返回的值中含有0的時候,例如對數字的查詢就要注意了,可以用 來判斷是否完全相等,php 測試boolean 0 false num 0 bt...
php curl返回false解決方法
curl返回false解決方法 直接出書 var dump curl error curl 看看報什麼錯 一般 curl setopt curl,curlopt ssl verifypeer,false curl setopt curl,curlopt ssl verifyhost,false 這樣...