我有这段代码:
<?php
$names = json_decode(file_get_contents("http://country.io/names.json"), true);
$data = file_get_contents("http://ipinfo.io/myIp/country");
echo($names[$data]);
?>
$names
是一系列国家/地区代码,$data
是来自IP的国家/地区代码,在我的情况下:IE。我想输出完整的国家/地区名称但由于某种原因它不起作用。但是,如果我键入:echo($names['IE']);
,它可以正常工作。怎么了?
答案 0 :(得分:3)
我认为$data
包含一个空字符。 trim将删除字符串两侧的所有空字符,此代码有效:
<?php
$names = json_decode(file_get_contents("http://country.io/names.json"), true);
$data = trim(file_get_contents("http://ipinfo.io/MyIP/country"));
echo($names[$data]);
?>
同样使用JSON作为@ElefantPhace建议更好
<?php
$names = json_decode(file_get_contents("http://country.io/names.json"), true);
$data = json_decode(file_get_contents("http://ipinfo.io/MyIP/json"));
echo($names[$data->country]);
?>
答案 1 :(得分:1)
试试这种方式,对我来说很好:
$names = json_decode(file_get_contents("http://country.io/names.json"), true);
$data = json_decode(file_get_contents("http://ipinfo.io"));
echo($names[$data->country]);
另外,您可能需要参考http://ipinfo.io/developers并了解为什么您可能无法获得预期