eXorithm – Execute Algorithm: View / Run Algorithm weather_forecast

Logo Beta

function weather_forecast ($location$units$header_color$day_header_color$day_color

{

  $weather = file_get_contents'http://www.google.com/ig/api?weather='urlencode$location));

  

  $xml = simplexml_load_string$weather);

  

  if (!isset$xml->weather->forecast_conditions)) {

    throw new Exception'Data could not be retreived for location '$location);

  }

  

  $location = $xml->weather->forecast_information->city['data'];

                                                      

  // four day outlook

  for ($i = 0; $i < 4; $i++){

    if ($xml->weather->forecast_conditions->$i) {

      $forecast_day[] = $xml->weather->forecast_conditions->$i->day_of_week['data'];

      $forecast_condition[] = $xml->weather->forecast_conditions->$i->condition['data'];

      $low = $xml->weather->forecast_conditions->$i->low['data'];

      if ($units=='k'

        $low = round((($low - 32)*5/9) + 273, 1);

      else if ($units=='c'

        $low = round(($low - 32)*5/9, 1);

      $forecast_low[] = $low

      $high = $xml->weather->forecast_conditions->$i->high['data'];

      if ($units=='k'

        $high = round((($high - 32)*5/9) + 273, 1);

      else if ($units=='c'

        $high = round(($high - 32)*5/9, 1);

      $forecast_high[] = $high

      $forecast_icon[] = $xml->weather->forecast_conditions->$i->icon['data'];

    }

  }

  

  // current

  $condition = $xml->weather->current_conditions->condition['data'];

  $temp = $xml->weather->current_conditions->temp_f['data'];

  if ($units=='k'

    $temp = round((($temp - 32)*5/9) + 273, 1);

  else if ($units=='c'

    $temp = round(($temp - 32)*5/9, 1);

  $icon = $xml->weather->current_conditions->icon['data'];

  

  // build the HTML

  $header = "<tr><td colspan=""count$forecast_day)."" bgcolor="#$header_color">"

  if ($icon!=''

    $header .= "<img align="left" src="http://www.google.com$icon">"

  $header .= "<b>$location</b><br>Currently <i>$condition</i> <b>$temp$units</b>"

  $header .= "</td></tr>n<tr>"

  $data = "<tr>n"

  

  for ($i = 0; $i < count$forecast_day); $i++){

    $header .= "<td width="130" bgcolor="#$day_header_color"><b>$forecast_day[$i]</b></td>"

    $data .= "<td bgcolor="#$day_color">"

    $data .= "<img src="http://www.google.com$forecast_icon[$i]">"

    $data .= "<br><i>$forecast_condition[$i]</i>"

    $data .= "<br>high <b>$forecast_high[$i]$units</b>"

    $data .= "<br>low <b>$forecast_low[$i]$units</b>"

    $data .= "</td>n"

  }

  

  $header .= "</tr>"

  $data .= "</tr>"

  

  return "<table cellpadding="5" cellspacing="3">n$headern$datan</table>"