JSON-декодирование по URL-адресу

Я использую 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