Погода JSON в стековом переполнении

Я пытаюсь отобразить эту информацию о погоде, извлекая ее из канала JSON на PHP. Я не могу понять, почему это не печать. Вот код:

$url="http://api.openweathermap.org/data/2.5/forecast?q=Albany,usl&APPID=5099c5feb579c7a17b030de0d009282f&units=metric";
$json=file_get_contents($url);
$data=json_decode($json);echo '<h1>', $data->name, ' (', $data->sys->country, ')</h1>';

// the general information about the weather
echo '<h2>Temperature:</h2>';
echo '<p><strong>Current:</strong> ', $data->main->temp, '&deg; C</p>';
echo '<p><strong>Min:</strong> ', $data->main->temp_min, '&deg; C</p>';
echo '<p><strong>Max:</strong> ', $data->main->temp_max, '&deg; C</p>';

?>

Мой вывод что-то вроде:

()

Температура:

Ток: ° С

Мин: ° С

Макс: ° C

1

Решение

Существует проблема с тем, как вы анализируете выходные данные из API. Проверьте ниже —

    $url="http://api.openweathermap.org/data/2.5/forecast?q=Albany,usl&APPID=5099c5feb579c7a17b030de0d009282f&units=metric";
$json=file_get_contents($url);
$data=json_decode($json);

echo '<h1>', $data->city->name, ' (', $data->city->country, ')</h1>';

// the general information about the weather
echo '<h2>Temperature:</h2>';
echo '<p><strong>Current:</strong> ', $data->list[0]->main->temp, '&deg; C</p>';
echo '<p><strong>Min:</strong> ', $data->list[0]->main->temp_min, '&deg; C</p>';
echo '<p><strong>Max:</strong> ', $data->list[0]->main->temp_max, '&deg; C</p>';
3

Другие решения

У вас неправильная структура. если вы хотите увидеть, как устроен JSON просто

echo '<pre>',print_r($data,1),'</pre>';

для вас выход вы хотите

$url="http://api.openweathermap.org/data/2.5/forecast?q=Albany,usl&APPID=5099c5feb579c7a17b030de0d009282f&units=metric";
$json=file_get_contents($url);
$data=json_decode($json);
echo $data->city->name;
0

По вопросам рекламы [email protected]