Циклические данные из запроса - PullRequest
0 голосов
/ 04 марта 2019

Здравствуйте. Мне нужно загрузить данные из этого запроса из таблицы 'player_list', но теперь я не знаю, как это сделать .. Пожалуйста, помогите

JSON

{"status":"Online",
"hostname":"[FUNPLAY.pro] AWP Ultimate | Sniper War [RAFFLES]",
"players":"6",
"slots":"24",
"map":"awp_arcade_kp",
"memory":"1192927166",
"cpu":"13",
"players_list":[{
    "name":"",
    "score":0,
    "time":40529.5703125,
    "kills":null,
    "deaths":null,
    "ping":null
    },{
    "name":"AYAYAY",
    "score":24,
    "time":1069.7547607422,
    "kills":null,
    "deaths":null,
    "ping":null
    },{
    "name":"Fresh","score":50,"time":1069.5672607422,"kills":null,"deaths":null,"ping":null},{"name":"skitels022","score":9,"time":892.56237792969,"kills":null,"deaths":null,"ping":null},{"name":"OsPa","score":22,"time":751.53881835938,"kills":null,"deaths":null,"ping":null},{"name":"xXPalacinkaXx","score":8,"time":612.87487792969,"kills":null,"deaths":null,"ping":null}]}

PHP-код

$server = Json_Decode(File_Get_Contents("http://query.fakaheda.eu/217.11.249.84:27408.feed"));
foreach($server['players_list'] as $player) { 
    echo '<span class="ipsGrid_span4">'.$player->name.'</span>'; 
    echo '<span class="ipsGrid_span4">'.$player->score.'</span>'; 
    echo '<span class="ipsGrid_span4">'.$player->time.'</span>'; 
}

Выдает эту ошибку

Ошибка: невозможно использовать объект типа stdClass в качестве массива (0)

1 Ответ

0 голосов
/ 04 марта 2019

Ваш json_decode() имеет второй параметр, который определяет тип возвращаемого значения.По умолчанию он разбирает строку JSON на stdObject, а вы получаете к ней доступ с использованием неверных индексов

$server = Json_Decode(File_Get_Contents("http://query.fakaheda.eu/217.11.249.84:27408.feed"));
foreach($server->players_list as $player) { 
    echo '<span class="ipsGrid_span4">'.$player->name.'</span>'; 
    echo '<span class="ipsGrid_span4">'.$player->score.'</span>'; 
    echo '<span class="ipsGrid_span4">'.$player->time.'</span>'; 
}

Чтобы проанализировать строку json в массив, используйте json_encode($jsonString, true)

$server = Json_Decode(File_Get_Contents("http://query.fakaheda.eu/217.11.249.84:27408.feed"), true);
foreach($server['players_list'] as $player) { 
    echo '<span class="ipsGrid_span4">'.$player['name'].'</span>'; 
    echo '<span class="ipsGrid_span4">'.$player['score'].'</span>'; 
    echo '<span class="ipsGrid_span4">'.$player['time'].'</span>'; 
}
...