我猜是json_decode返回null

时间:2017-01-25 22:57:16

标签: php json

我尝试在我的服务器上运行它:

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
echo $ip;
$city = $details -> city;
echo $city;
?>

但是,这只打印ip。 可能是服务器问题或配置?

1 个答案:

答案 0 :(得分:1)

你需要更具防御性的代码,如果该网站没有你提供的ip地址数据,那么它就不会返回任何city属性

这有点安全

$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
echo $ip . ' ';
if (isset($details->city)){
    echo $details->city;
} else {
    echo 'data not available';
}

从它为我的IP地址返回的内容来判断,它提供的详细信息无论如何都不是很准确