JSON-декодирование с URL - PullRequest
4 голосов
/ 04 июля 2011

Я использую API, который возвращает строку JSON:

http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo

Интересующая меня часть - это город / название города (в данном случае Hook Norton)который я хотел бы в качестве переменной PHP.Я понимаю, что функция JSON_decode() где-то вступает в игру, но как мне получить доступ к выходу API?

Ответы [ 3 ]

12 голосов
/ 04 июля 2011

Попробуйте это.

$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 голос
/ 04 июля 2011

Поскольку 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
1 голос
/ 04 июля 2011

Самый простой способ - использовать 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...