2016-09-22 114 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。