JSON PHP 中的天气信息

JSON Weather Feed in PHP

我正在尝试通过从 PHP 中的 JSON 提要中提取它来显示此天气信息。我不明白为什么它不打印。这是代码:

$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

最低:°C

最高:°C

您解析 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>';

你的结构有误。如果您想查看 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;