Я показываю прогноз погоды на 3 дня, используя ключ API от wunderground.com. Дизайн макета включает в себя: дату, текущее состояние (т. Е. Пасмурно), а также высокие и низкие температуры для каждого дня. Я понял, как отображать текущую дату и температуру, но я ломаю голову, пытаясь найти погоду на следующие два дня … кто-нибудь может помочь?
Я сделал var_dump($parsed_json)
и я тяну только в сегодняшнюю погоду (дата, текущая температура, текущее состояние и т. д.)
<?php
$json_string = file_get_contents("api.wunderground.com/api/[key]/conditions/q/TN/…);
$parsed_json = json_decode($json_string);
$date = $parsed_json
->{'current_observation'}
->{'observation_time_rfc822'};
$temp_f = $parsed_json->{'current_observation'}->{'temp_f'};
$feels_like = $parsed_json->{'current_observation'}->{'feelslike_f'};
$weather = $parsed_json->{'current_observation'}->{'weather'};
echo "${date}\n";
echo "${temp_f}\n";
echo "Feels like... ${feels_like}\n";
echo "${weather}\n";
Ссылаясь на Wunderground API документация Вы должны использовать:
http://api.wunderground.com/api/Your_Key/forecast/q/TN/XXX.json
в вашем file_get_contents()
,
Это вернет ответ, который имеет forecast
объект, в котором у вас есть прогноз на неделю в виде текста (txt_forecast
объект) и версия только для данных (simpleforecast
объект):
{
"response":{
...
},
"forecast":{
"txt_forecast":{
"date":"2:00 PM PDT",
"forecastday":[
{
"period":0,
"icon":"partlycloudy",
"icon_url":"http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
"title":"Tuesday",
"fcttext":"Partly cloudy in the morning, then clear. High of 68F. Breezy. Winds from the West at 10 to 25 mph.",
"fcttext_metric":"Partly cloudy in the morning, then clear. High of 20C. Windy. Winds from the West at 20 to 35 km/h.",
"pop":"0"},
{
"period":1,
"icon":"partlycloudy",
"icon_url":"http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
"title":"Tuesday Night",
"fcttext":"Mostly cloudy. Fog overnight. Low of 50F. Winds from the WSW at 5 to 15 mph.",
"fcttext_metric":"Mostly cloudy. Fog overnight. Low of 10C. Breezy. Winds from the WSW at 10 to 20 km/h.",
"pop":"0"},
{
...
}
]
},
"simpleforecast":{
"forecastday":[
{
"date":{
"epoch":"1340776800",
"pretty":"11:00 PM PDT on June 26, 2012",
"day":26,
"month":6,
"year":2012,
"yday":177,
"hour":23,
"min":"00",
"sec":0,
"isdst":"1",
"monthname":"June",
"weekday_short":"Tue",
"weekday":"Tuesday",
"ampm":"PM",
"tz_short":"PDT",
"tz_long":"America/Los_Angeles"},
"period":1,
"high":{
"fahrenheit":"68",
"celsius":"20"},
"low":{
"fahrenheit":"50",
"celsius":"10"},
"conditions":"Partly Cloudy",
"icon":"partlycloudy",
"icon_url":"http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
"skyicon":"mostlysunny",
"pop":0,
"qpf_allday":{
"in":0.00,
"mm":0.0
},
"qpf_day":{
"in":0.00,
"mm":0.0
},
"qpf_night":{
"in":0.00,
"mm":0.0
},
"snow_allday":{
"in":0,
"cm":0
},
"snow_day":{
"in":0,
"cm":0
},
"snow_night":{
"in":0,
"cm":0
},
"maxwind":{
"mph":21,
"kph":34,
"dir":"West",
"degrees":272
},
"avewind":{
"mph":17,
"kph":27,
"dir":"West",
"degrees":272
},
"avehumidity":72,
"maxhumidity":94,
"minhumidity":58
},
{
...
}
]
}
}
}
Других решений пока нет …