将file_get_contents转换为数组以获取IP详细信息

时间:2015-12-27 00:08:44

标签: php arrays ip file-get-contents

我的网站上有这个简单的代码:

$info = file_get_contents('http://freegeoip.net/json/'.$_SERVER['REMOTE_ADDR']);

显示如下:

{"ip":"123.123.12.1","country_code":"GB","country_name":"United Kingdom","region_code":"ENG","region_name":"England","city":"London","zip_code":"LN1","time_zone":"Europe/London","latitude":30.302,"longitude":-1.123,"metro_code":0}

我正在尝试将其转换为数组,以便我可以使用类似于以下内容的方式将此数据导入数据库:

$ip_address = $info['ip'];
$city = $info['city'];

依此类推......我试图使用$info[1], $info[2],它只显示{ "每个文字字符。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:1)

这是一种JSON格式,您可以使用json_decode()函数将其转换为对象或数组。 所以你有:


    $info = file_get_contents('http://freegeoip.net/json/'.$_SERVER['REMOTE_ADDR']);
    $info = json_decode($info, true);

然后,如您所说,您可以使用$info['ip']$info['city']

答案 1 :(得分:0)

使用json_decode

$info_obj = json_decode($info);

现在$ info_obj有您想要的信息,您可以这样访问:

$ip_address = $info_obj->ip;
$city = $info_obj->city;