How can I get data from this web service using PHP?
I need a simple PHP function to list the countries.
Web service Data
{
"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"
}
]
}
}
asked May 22, 2011 at 11:00
1 Answer 1
Assuming allow_url_fopen
is on in php.ini
(if not, use cURL library).
$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'];
}
Of course, handle if $json
is FALSE
(error with request).
Alternatively, if using>= PHP 5.3.
$countries = array_map(function($item) {
return $item['description'];
}, $data['data']['item']);
answered May 22, 2011 at 11:02
-
Something is not right?! I'm getting wrong values on my array print_r($countries); Array ( [0] => g [1] => )CMartins– CMartins2011年05月22日 18:26:26 +00:00Commented May 22, 2011 at 18:26
-
1@Carlos You must be doing something wrong, because it definitely works.alex– alex2011年05月22日 22:58:36 +00:00Commented May 22, 2011 at 22:58
lang-php