2016-09-22 104 views
0

我想創建一個打印您所在區域的簡單頁面,我正在使用來自此站點的API freegeoip.net。我已經設置它,所以它通過網站運行一個用戶IP並返回JSON,但是我有問題解析該響應。這是我寫的代碼:PHP JSON用cURL解析

<?php 
$person = $_SERVER["REMOTE_ADDR"]; 

$url = "freegeoip.net/json/$person"; 

$cURL = curl_init(); 

curl_setopt($cURL, CURLOPT_URL, $url); 

curl_setopt($cURL, CURLOPT_HTTPGET, true); 

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
    )); 

$result = curl_exec($cURL); 

curl_close($cURL); 


$json = json_decode($result, true); 

echo $json['region_name']; 
echo $json['city']; 
?> 

但是由於某些原因,它仍然從打印服務器API充分反應......我該如何解決這個問題?

+0

您可以在嘗試使用您的代碼之前通過https://www.hurl.it/測試/檢查回覆 –

回答

2

添加以下行設置CURLOPT_HTTPHEADER後:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1); 

默認curl_exec()的響應進行直接輸出,並將其返回TRUE或FALSE的成功,失敗。如果將CURLOPT_RETURNTRANSFER設置爲TRUE,curl_exec()將返回成功操作的實際結果,但在失敗時仍然會返回FALSE。