[英]Using json_decode on cURL result
我有以下代碼可檢索有關公司的數據。
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSLVERSION,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
$result = curl_exec($ch);
$result = json_decode($result, true);
curl_close($ch);
return $result;
}
$get_page = getSSLPage('link');
print_r($get_page);
問題是我無法檢索json結果。 curl_exec()確實會打印結果,但是如果我在$ result上使用print_r()或var_dump(),則會得到int(1)作為結果。
我嘗試了其他變化,但一切都失敗了。
多謝您的協助。
使用CURLOPT_RETURNTRANSFER
選項。
您應該使用CURLOPT_RETURNTRANSFER
並且可以將代碼簡化為:
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// add other options you need, eg: timeout, etc
$result = curl_exec($ch);
if($result === false) {
//error occurs, use curl_errno/curl_error to get the error
} else {
$result = json_decode($result, true);
}
curl_close($ch);
return $result;
}
在你的功能內
在curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
之后在下面添加代碼curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Will return the response, if false it prints the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.