我正在使用返回JSON字符串的API:
http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo
我感兴趣的部分是城市/城镇名称(在本例中为Hook Norton),我想将其作为PHP变量。我理解JSON_decode()
函数在某处发挥作用,但是如何访问API的输出?
答案 0 :(得分:12)
试试这个。
$json = file_get_contents('http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo');
$data = json_decode($json,true);
$Geonames = $data['geonames'][0];
echo "<pre>";
print_r($Geonames);
exit;
答案 1 :(得分:1)
最简单的方法是使用file_get_contents
,它适用于Web文档和本地文件。例如:
$json = file_get_contents("http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo");
$data = json_decode($json);
echo $data->geonames[0]->toponymName;
答案 2 :(得分:1)
由于JSON是HTTP响应的一部分,因此您需要使用PHP发出HTTP请求并以字符串形式获取响应。
这款瑞士刀是cURL,但是(根据你的要求和服务器的PHP配置),你很可能会这样做:
$json = file_get_contents('http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo');
$data = json_decode($json);
// and now access the data you need