使用cURL进行PHP-JSON解析
我想创建一个简单的页面来打印您所在的地区,我使用的是来自这个网站freegoip.net的API。我已经对它进行了设置,以便它通过站点运行用户ip并返回JSON,但是我在解析该响应时遇到了问题。这是我写的代码:使用cURL进行PHP-JSON解析,php,json,curl,Php,Json,Curl,我想创建一个简单的页面来打印您所在的地区,我使用的是来自这个网站freegoip.net的API。我已经对它进行了设置,以便它通过站点运行用户ip并返回JSON,但是我在解析该响应时遇到了问题。这是我写的代码: <?php $person = $_SERVER["REMOTE_ADDR"]; $url = "freegeoip.net/json/$person"; $cURL = curl_init(); curl_setopt($cURL, CURLOPT_URL, $url);
<?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的完整响应。。。如何解决此问题?在设置CURLOPT_HTTPHEADER后添加以下行:
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);
默认情况下,curl_exec()直接输出响应,成功时返回TRUE,失败时返回FALSE。如果将CURLOPT_RETURNTRANSFER设置为TRUE,curl_exec()将返回成功操作的实际结果,但失败时仍将返回FALSE。在设置CURLOPT_HTTPHEADER后添加以下行:
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);
默认情况下,curl_exec()直接输出响应,成功时返回TRUE,失败时返回FALSE。如果将CURLOPT_RETURNTRANSFER设置为TRUE,curl_exec()将返回成功操作的实际结果,但失败时仍将返回FALSE。您可以在使用代码尝试之前测试/检查响应您可以在使用代码尝试之前测试/检查响应