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