Я использую API, который возвращает строку JSON:
http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo
Интересующая меня часть - это город / название города (в данном случае Hook Norton)который я хотел бы в качестве переменной PHP.Я понимаю, что функция JSON_decode() где-то вступает в игру, но как мне получить доступ к выходу API?
JSON_decode()
Попробуйте это.
$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;
Поскольку JSON является частью HTTP-ответа, вам нужно сделать HTTP-запрос с PHP и получить ответ в виде строки.
Швейцарским ножом для этого является 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
Самый простой способ - использовать file_get_contents, который работает как с веб-документами, так и с локальными файлами.Например:
file_get_contents
$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;