#php #web-services #json
#php #веб-сервисы #json
Вопрос:
Как я могу получить данные из этого веб-сервиса с помощью PHP?
Мне нужна простая функция PHP для составления списка стран.
Данные веб-службы
{
"valid":true,
"id":"0",
"data":{
"@type":"genericObjectArray",
"item":[
{
"id":"DE",
"description":"Deutschland"
},
{
"id":"ES",
"description":"España"
},
{
"id":"FR",
"description":"France"
},
{
"id":"PT",
"description":"Portugal"
},
{
"id":"UK",
"description":"United Kingdom"
},
{
"id":"US",
"description":"United States"
}
]
}
}
Ответ №1:
Предполагается, что allow_url_fopen
включена в php.ini
(если нет, используйте библиотеку cURL).
$json = file_get_contents('http://onleague.stormrise.pt:8031/OnLeagueRest/resources/onleague/Utils/Countries ');
$data = json_decode($json, TRUE);
$countries = array();
foreach($data['data']['item'] as $item) {
$countries[] = $item['description'];
}
Конечно, обработайте, если $json
есть FALSE
(ошибка с запросом).
В качестве альтернативы, если используется >= PHP 5.3.
$countries = array_map(function($item) {
return $item['description'];
}, $data['data']['item']);
Комментарии:
1. Что-то не так?! Я получаю неправильные значения в моем массиве print_r ($ countries); Array ( [0] => g [1] => )
2. @Carlos Вы, должно быть, делаете что-то неправильно, потому что это определенно работает.