2016-05-02 2 views
-2

Я показываю 3-дневную погоду, используя ключ API от wunderground.com. Дизайн макета включает в себя: дату, текущее состояние (т. Е. Пасмурное), а также высокие и низкие температуры на каждый день. Я выяснил, как отображать текущую дату и температуру, но я ломаю голову, пытаясь найти следующую двухдневную погоду ... может ли кто-нибудь помочь?Как затянуть трехдневную погоду с помощью ключа API?

Я сделал 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"; 
+0

Пожалуйста, не добавить код в комментарии ** его совершенно нечитаемый ** Я отредактировал его в вашем вопросе, что и следовало сделать – RiggsFolly

+1

Вы должны ** никогда, никогда, никогда не публиковать свой ключ API (или пароль или токен или ...) в общественный форум. Вы только что дали каждому и своему брату доступ к вашему ключу. Я ** настоятельно предлагаю вам сразу же создать новый ключ. – BryanH

ответ

0

Обращаясь к Wunderground API documentation вы должны использовать:

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 
      }, 
      { 
      ...     
      } 
     ] 
     } 
    } 
}