fixed with Fabio's assistance

pull/96/head
tony baldwin 2013-02-11 05:24:21 -05:00
parent 0ccb9f5c0c
commit 3ce891c7d3
4 changed files with 200 additions and 184 deletions

Binary file not shown.

View File

@ -4,8 +4,10 @@
* Description: Shows current temperature for user's location on their network page * Description: Shows current temperature for user's location on their network page
* Version: 1.0 * Version: 1.0
* Author: Tony Baldwin <t0ny@friendica.tonybaldwin.info> * Author: Tony Baldwin <t0ny@friendica.tonybaldwin.info>
* Author: Fabio Comuni <fabrixxm@kirkgroup.com>
* *
*/ */
require_once('addon/curtemp/getweather.php');
function curtemp_install() { function curtemp_install() {
register_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); register_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init');
@ -22,30 +24,31 @@ function curtemp_uninstall() {
} }
function curtemp_network_mod_init($a,$b) { function curtemp_network_mod_init(&$fk_app,&$b) {
if(! intval(get_pconfig(local_user(),'curtemp','curtemp_enable'))) if(! intval(get_pconfig(local_user(),'curtemp','curtemp_enable')))
return; return;
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/curtemp/curtemp.css' . '" media="all" />' . "\r\n"; $fk_app->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $fk_app->get_baseurl() . '/addon/curtemp/curtemp.css' . '" media="all" />' . "\r\n";
// the getweather file does all the work here // the getweather file does all the work here
// the $rpt value is needed for location // the $rpt value is needed for location
// which getweather uses to fetch the weather data for weather and temp // which getweather uses to fetch the weather data for weather and temp
$curtemp_loc = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); $rpt = get_pconfig(local_user(), 'curtemp', 'curtemp_loc');
$curtemp = '<div id="curtemp-network" class="widget"> $wxdata = GetWeather::get($rpt);
<div class="title tool"> $temp = $wxdata['TEMPERATURE_STRING'];
<h4>'.t("Current Temp").'</h4></div>'; $weather = $wxdata['WEATHER'];
$curtemp .= '<?php $curtemp = '<div id="curtemp-network" class="widget">
require_once(\'addon/curtemp/getweather.php\'); <div class="title tool">
$rpt = "' . $curtemp_loc . '"; <h4>'.t("Current Temp").'</h4></div>';
?>
Weather: <php echo $wxdata[\'WEATHER\'];?><br />
Temperature: <php echo $wxdata[\'TEMPERATURE_STRING\'];?>';
$curtemp .= '</div></div><div class="clear"></div>'; $curtemp .= 'Weather: "' . $weather . '"<br />
Temperature: "' . $temp . '"';
$curtemp .= '</div><div class="clear"></div>';
$fk_app->page['aside'] = $curtemp.$fk_app->page['aside'];
$a->page['aside'] = $curtemp . $a->page['aside'];
} }

View File

@ -28,195 +28,203 @@ Complete list of Weather stations available at
http://weather.gov/data/current_obs/index.xml http://weather.gov/data/current_obs/index.xml
*/ */
class GetWeather {
// URL for the XML file // Initialize some variables
$xmlurl="http://www.weather.gov/data/current_obs/$rpt.xml"; static $itemdata;
static $itemname;
static $wxdata;
// Base url for the icons
$imgpath="http://weather.gov/weather/images/fcicons";
// Get the icons as an array function get($rpt) {
$icons=defineIcons();
// URL for the XML file
$xmlurl="http://www.weather.gov/data/current_obs/$rpt.xml";
// Initialize some variables // Base url for the icons
$itemdata=""; $imgpath="http://weather.gov/weather/images/fcicons";
$itemname="";
$wxdata=array();
$data="";
$report="";
$icon="";
// create a new CURL resource
if($ch = curl_init()) { self::$itemdata="";
self::$itemname="";
self::$wxdata=array();
$icons=self::defineIcons();
$icon="";
$data="";
$report="";
// create a new CURL resource
if($ch = curl_init()) {
// set URL and other appropriate options // set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $xmlurl); curl_setopt($ch, CURLOPT_URL, $xmlurl);
curl_setopt($ch, CURLOPT_HEADER, trus); curl_setopt($ch, CURLOPT_HEADER, trus);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// grab URL and pass it to the browser // grab URL and pass it to the browser
$data=curl_exec($ch); $data=curl_exec($ch);
$r=curl_getinfo($ch); //,CURLINFO_HTTP_CODE); $r=curl_getinfo($ch); //,CURLINFO_HTTP_CODE);
// close CURL resource, and free up system resources // close CURL resource, and free up system resources
curl_close($ch); curl_close($ch);
// Create an XML parser // Create an XML parser
$xml_parser = xml_parser_create(); $xml_parser = xml_parser_create();
// Use case-folding so we are sure to find the tag in $map_array // Use case-folding so we are sure to find the tag in $map_array
// This will force all tags to upper case so we don't have to worry // This will force all tags to upper case so we don't have to worry
// about matching the case of the original in our tests. // about matching the case of the original in our tests.
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
// Assign the element starting and ending event handlers // Assign the element starting and ending event handlers
xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_element_handler($xml_parser, array(self,"startElement"), array(self,"endElement"));
// Assign a function to handle character data // Assign a function to handle character data
xml_set_character_data_handler($xml_parser, "characterData"); xml_set_character_data_handler($xml_parser, array(self,"characterData"));
// Parse the file. This will place the data into an associative // Parse the file. This will place the data into an associative
// array assigned to the $wxdata variable // array assigned to the self::$wxdata variable
xml_parse($xml_parser,$data,true); xml_parse($xml_parser,$data,true);
// Free the parser object // Free the parser object
xml_parser_free($xml_parser); xml_parser_free($xml_parser);
// The OBSERVATION_TIME field of the returned XML will be in the // The OBSERVATION_TIME field of the returned XML will be in the
// format "Last Updated on May 18, 8:53 am CDT" // format "Last Updated on May 18, 8:53 am CDT"
// We're going to change the format a bit. // We're going to change the format a bit.
// Strip out the "Last Updated on " portion of the date/time // Strip out the "Last Updated on " portion of the date/time
// so we can display that separately in our tabular output // so we can display that separately in our tabular output
$datetime=str_replace("Last Updated on ","",$wxdata['OBSERVATION_TIME']); $datetime=str_replace("Last Updated on ","",self::$wxdata['OBSERVATION_TIME']);
// We now have the format as "May 18, 8:53 am CDT" // We now have the format as "May 18, 8:53 am CDT"
// Now, get the time zone. It will be everything from // Now, get the time zone. It will be everything from
// the last space character to the end of the string. // the last space character to the end of the string.
$z=strrchr($datetime," "); $z=strrchr($datetime," ");
// Get the current year // Get the current year
$year=date("Y"); $year=date("Y");
// Now, we stuff the year into the string, following the comma. // Now, we stuff the year into the string, following the comma.
$datetime=str_replace(",",", $year",$datetime); $datetime=str_replace(",",", $year",$datetime);
// This does leave a small potential issue where, if you get a // This does leave a small potential issue where, if you get a
// report between midnight and 1 a.m. on January 1, or the server // report between midnight and 1 a.m. on January 1, or the server
// is in a significantly different time zone than the report it // is in a significantly different time zone than the report it
// could be as late as 4 a.m. the year will be wrong because the // could be as late as 4 a.m. the year will be wrong because the
// report will be from the previous year. I suppose it would be // report will be from the previous year. I suppose it would be
// possible to correct for that, but for that little bit, I'm // possible to correct for that, but for that little bit, I'm
// not going to worry about it. // not going to worry about it.
// Now, strip out the time zone // Now, strip out the time zone
$datetime=str_replace($z,"",$datetime); $datetime=str_replace($z,"",$datetime);
// Format the date and time the way we want it and add // Format the date and time the way we want it and add
// back the time zone // back the time zone
$datetime=date("l F j, Y g:i A",strtotime($datetime)).$z; $datetime=date("l F j, Y g:i A",strtotime($datetime)).$z;
$wxdata['OBSERVATION_TIME']=$datetime; self::$wxdata['OBSERVATION_TIME']=$datetime;
// Get the WEATHER element // Get the WEATHER element
$wx=trim($wxdata['WEATHER']); $wx=trim(self::$wxdata['WEATHER']);
// Now, get the icon to match the weather // Now, get the icon to match the weather
foreach($icons as $k=>$i){ foreach($icons as $k=>$i){
$a=explode(" | ",$i); $a=explode(" | ",$i);
if(is_numeric(array_search($wx,$a))){ if(is_numeric(array_search($wx,$a))){
$wxdata['ICON']="$imgpath/$k.jpg"; self::$wxdata['ICON']="$imgpath/$k.jpg";
break; break;
} }
} }
// Replace any null elements with "Not available" // Replace any null elements with "Not available"
foreach(array_keys($wxdata) as $key){ foreach(array_keys(self::$wxdata) as $key){
$wxdata[$key]=$wxdata[$key]=="NULL"?"Not available":$wxdata[$key]; self::$wxdata[$key]=self::$wxdata[$key]=="NULL"?"Not available":self::$wxdata[$key];
} }
// If we got humidity // If we got humidity
if(is_numeric($wxdata['RELATIVE_HUMIDITY'])) if(is_numeric(self::$wxdata['RELATIVE_HUMIDITY']))
// Append a percent sign // Append a percent sign
$wxdata['RELATIVE_HUMIDITY'].="%"; self::$wxdata['RELATIVE_HUMIDITY'].="%";
// Do some formatting to make the output a little friendlier // Do some formatting to make the output a little friendlier
if($wxdata['VISIBILITY_MI']=="NA") if(self::$wxdata['VISIBILITY_MI']=="NA")
$wxdata['VISIBILITY']="Not available"; self::$wxdata['VISIBILITY']="Not available";
if($wxdata['VISIBILITY']!="Not available") if(self::$wxdata['VISIBILITY']!="Not available")
$wxdata['VISIBILITY']=(1*$wxdata['VISIBILITY_MI'])." miles"; self::$wxdata['VISIBILITY']=(1*self::$wxdata['VISIBILITY_MI'])." miles";
// If we got wind data // If we got wind data
if(is_numeric($wxdata['WIND_MPH'])){ if(is_numeric(self::$wxdata['WIND_MPH'])){
// We're going to output wind data as both MPH from a cardinal direction // We're going to output wind data as both MPH from a cardinal direction
// and as Knots from a direction in degrees // and as Knots from a direction in degrees
// Calculate the value for Knots // Calculate the value for Knots
$wxdata['WIND_KNOTS']=$wxdata['WIND_MPH']/1.15; self::$wxdata['WIND_KNOTS']=self::$wxdata['WIND_MPH']/1.15;
// Format the output // Format the output
$wind=sprintf("From the %s at %d mph (%03.0f&deg; at %d knots)",$wxdata['WIND_DIR'],$wxdata['WIND_MPH'],$wxdata['WIND_DEGREES'],$wxdata['WIND_KNOTS']); $wind=sprintf("From the %s at %d mph (%03.0f&deg; at %d knots)",self::$wxdata['WIND_DIR'],self::$wxdata['WIND_MPH'],self::$wxdata['WIND_DEGREES'],self::$wxdata['WIND_KNOTS']);
// If we got a value for wind gusts // If we got a value for wind gusts
if(is_numeric($wxdata['WIND_GUST_MPH']) && $wxdata['WIND_GUST_MPH']>0){ if(is_numeric(self::$wxdata['WIND_GUST_MPH']) && self::$wxdata['WIND_GUST_MPH']>0){
// add it into the wind string // add it into the wind string
$wind=str_replace("mph","gusting to ".$wxdata['WIND_GUST_MPH']." mph<br>", $wind); $wind=str_replace("mph","gusting to ".self::$wxdata['WIND_GUST_MPH']." mph<br>", $wind);
$knots=sprintf("%d",$wxdata['WIND_GUST_MPH']/1.15); $knots=sprintf("%d",self::$wxdata['WIND_GUST_MPH']/1.15);
$wind=str_replace("knots","gusting to $knots knots",$wind); $wind=str_replace("knots","gusting to $knots knots",$wind);
} }
} else { } else {
// Otherwise, if wind is zero, we'll show "Calm" // Otherwise, if wind is zero, we'll show "Calm"
$wind=$wxdata['WIND_MPH']=="Not available"?"Not available":"Calm"; $wind=self::$wxdata['WIND_MPH']=="Not available"?"Not available":"Calm";
} // Done with wind } // Done with wind
$wxdata['WIND_STRING']=$wind; self::$wxdata['WIND_STRING']=$wind;
} // Done getting and formatting the data } // Done getting and formatting the data
return self::$wxdata;
}
function startElement($parser, $name, $attrs) {
self::$itemname=$name;
self::$itemdata="";
}
function startElement($parser, $name, $attrs) { function endElement($parser, $name) {
global $itemname,$itemdata,$wxdata; self::$wxdata[self::$itemname]=self::$itemdata;
$itemname=$name; self::$itemdata="";
$itemdata=""; }
function characterData($parser, $data) {
self::$itemdata.=$data;
}
function defineIcons(){
// See http://weather.gov/data/current_obs/weather.php for source data for this function
$retVal['bkn']="Mostly Cloudy | Mostly Cloudy with Haze | Mostly Cloudy and Breezy";
$retVal['skc']="Fair | Clear | Fair with Haze | Clear with Haze | Fair and Breezy | Clear and Breezy";
$retVal['few']="A Few Clouds | A Few Clouds with Haze | A Few Clouds and Breezy";
$retVal['sct']="Partly Cloudy | Party Cloudy with Haze | Partly Cloudy and Breezy";
$retVal['ovc']="Overcast | Overcast with Haze | Overcast and Breezy";
$retVal['nfg']="Fog/Mist | Fog | Freezing Fog | Shallow Fog | Partial Fog | Patches of Fog | Fog in Vicinity | Freezing Fog in Vicinity | Shallow Fog in Vicinity | Partial Fog in Vicinity | Patches of Fog in Vicinity | Showers in Vicinity Fog | Light Freezing Fog | Heavy Freezing Fog";
$retVal['smoke']="Smoke";
$retVal['fzra']="Freezing Rain | Freezing Drizzle | Light Freezing Rain | Light Freezing Drizzle | Heavy Freezing Rain | Heavy Freezing Drizzle | Freezing Rain in Vicinity | Freezing Drizzle in Vicinity";
$retVal['ip']="Ice Pellets | Light Ice Pellets | Heavy Ice Pellets | Ice Pellets in Vicinity | Showers Ice Pellets | Thunderstorm Ice Pellets | Ice Crystals | Hail | Small Hail/Snow Pellets | Light Small Hail/Snow Pellets | Heavy Small Hail/Snow Pellets | Showers Hail | Hail Showers";
$retVal['mix']="Freezing Rain Snow | Light Freezing Rain Snow | Heavy Freezing Rain Snow | Freezing Drizzle Snow | Light Freezing Drizzle Snow | Heavy Freezing Drizzle Snow | Snow Freezing Rain| Light Snow Freezing Rain | Heavy Snow Freezing Rain | Snow Freezing Drizzle | Light Snow Freezing Drizzle | Heavy Snow Freezing Drizzle";
$retVal['raip']="Rain Ice Pellets | Light Rain Ice Pellets | Heavy Rain Ice Pellets | Drizzle Ice Pellets | Light Drizzle Ice Pellets | Heavy Drizzle Ice Pellets | Ice Pellets Rain | Light Ice Pellets Rain | Heavy Ice Pellets Rain | Ice Pellets Drizzle | Light Ice Pellets Drizzle | Heavy Ice Pellets Drizzle";
$retVal['rasn']="Rain Snow | Light Rain Snow | Heavy Rain Snow | Snow Rain | Light Snow Rain | Heavy Snow Rain | Drizzle Snow | Light Drizzle Snow | Heavy Drizzle Snow | Snow Drizzle | Light Snow Drizzle | Heavy Snow Drizzle";
$retVal['shra']="Rain Showers | Light Rain Showers | Heavy Rain Showers | Rain Showers in Vicinity | Light Showers Rain | Heavy Showers Rain | Showers Rain | Showers Rain in Vicinity | Rain Showers Fog/Mist | Light Rain Showers Fog/Mist | Heavy Rain Showers Fog/Mist | Rain Showers in Vicinity Fog/Mist | Light Showers Rain Fog/Mist | Heavy Showers Rain Fog/Mist | Showers Rain Fog/Mist | Showers Rain in Vicinity Fog/Mist";
$retVal['tsra']="Thunderstorm | Light Thunderstorm Rain | Heavy Thunderstorm Rain | Thunderstorm Rain Fog/Mist | Light Thunderstorm Rain Fog/Mist | Heavy Thunderstorm Rain Fog/Mist | Thunderstorm Showers in Vicinity | | Light Thunderstorm Rain Haze | Heavy Thunderstorm Rain Haze | Thunderstorm Fog | Light Thunderstorm Rain Fog | Heavy Thunderstorm Rain Fog | Thunderstorm Light Rain | Thunderstorm Heavy Rain | Thunderstorm Rain Fog/Mist | Thunderstorm Light Rain Fog/Mist | Thunderstorm Heavy Rain Fog/Mist | Thunderstorm in Vicinity Fog/Mist | Thunderstorm Showers in Vicinity | Thunderstorm in Vicinity | Thunderstorm in Vicinity Haze | Thunderstorm Haze in Vicinity | Thunderstorm Light Rain Haze | Thunderstorm Heavy Rain Haze | Thunderstorm Fog | Thunderstorm Light Rain Fog | Thunderstorm Heavy Rain Fog | Thunderstorm Hail | Light Thunderstorm Rain Hail | Heavy Thunderstorm Rain Hail | Thunderstorm Rain Hail Fog/Mist | Light Thunderstorm Rain Hail Fog/Mist | Heavy Thunderstorm Rain Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | | Light Thunderstorm Rain Hail Haze | Heavy Thunderstorm Rain Hail Haze | Thunderstorm Hail Fog | Light Thunderstorm Rain Hail Fog | Heavy Thunderstorm Rain Hail Fog | Thunderstorm Light Rain Hail | Thunderstorm Heavy Rain Hail | Thunderstorm Rain Hail Fog/Mist | Thunderstorm Light Rain Hail Fog/Mist | Thunderstorm Heavy Rain Hail Fog/Mist | Thunderstorm in Vicinity Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | Thunderstorm in Vicinity Hail | Thunderstorm in Vicinity Hail Haze | Thunderstorm Haze in Vicinity Hail | Thunderstorm Light Rain Hail Haze | Thunderstorm Heavy Rain Hail Haze | Thunderstorm Hail Fog | Thunderstorm Light Rain Hail Fog | Thunderstorm Heavy Rain Hail Fog | Thunderstorm Small Hail/Snow Pellets | Thunderstorm Rain Small Hail/Snow Pellets | Light Thunderstorm Rain Small Hail/Snow Pellets | Heavy Thunderstorm Rain Small Hail/Snow Pellets";
$retVal['sn']="Snow | Light Snow | Heavy Snow | Snow Showers | Light Snow Showers | Heavy Snow Showers | Showers Snow | Light Showers Snow | Heavy Showers Snow | Snow Fog/Mist | Light Snow Fog/Mist | Heavy Snow Fog/Mist | Snow Showers Fog/Mist | Light Snow Showers Fog/Mist | Heavy Snow Showers Fog/Mist | Showers Snow Fog/Mist | Light Showers Snow Fog/Mist | Heavy Showers Snow Fog/Mist | Snow Fog | Light Snow Fog | Heavy Snow Fog | Snow Showers Fog | Light Snow Showers Fog | Heavy Snow Showers Fog | Showers Snow Fog | Light Showers Snow Fog | Heavy Showers Snow Fog | Showers in Vicinity Snow | Snow Showers in Vicinity | Snow Showers in Vicinity Fog/Mist | Snow Showers in Vicinity Fog | Low Drifting Snow | Blowing Snow | Snow Low Drifting Snow | Snow Blowing Snow | Light Snow Low Drifting Snow | Light Snow Blowing Snow | Heavy Snow Low Drifting Snow | Heavy Snow Blowing Snow | Thunderstorm Snow | Light Thunderstorm Snow | Heavy Thunderstorm Snow | Snow Grains | Light Snow Grains | Heavy Snow Grains | Heavy Blowing Snow | Blowing Snow in Vicinity";
$retVal['wind']="Windy | Fair and Windy | A Few Clouds and Windy | Partly Cloudy and Windy | Mostly Cloudy and Windy | Overcast and Windy";
$retVal['hi_shwrs']="Showers in Vicinity | Showers in Vicinity Fog/Mist | Showers in Vicinity Fog | Showers in Vicinity Haze";
$retVal['fzrara']="Freezing Rain Rain | Light Freezing Rain Rain | Heavy Freezing Rain Rain | Rain Freezing Rain | Light Rain Freezing Rain | Heavy Rain Freezing Rain | Freezing Drizzle Rain | Light Freezing Drizzle Rain | Heavy Freezing Drizzle Rain | Rain Freezing Drizzle | Light Rain Freezing Drizzle | Heavy Rain Freezing Drizzle";
$retVal['hi_tsra']="Thunderstorm in Vicinity | Thunderstorm in Vicinity Fog/Mist | Thunderstorm in Vicinity Fog | Thunderstorm Haze in Vicinity | Thunderstorm in Vicinity Haze";
$retVal['ra1']="Light Rain | Drizzle | Light Drizzle | Heavy Drizzle | Light Rain Fog/Mist | Drizzle Fog/Mist | Light Drizzle Fog/Mist | Heavy Drizzle Fog/Mist | Light Rain Fog | Drizzle Fog | Light Drizzle Fog | Heavy Drizzle Fog";
$retVal['ra']="Rain | Heavy Rain | Rain Fog/Mist | Heavy Rain Fog/Mist | Rain Fog | Heavy Rain Fog";
$retVal['nsvrtsra']="Funnel Cloud | Funnel Cloud in Vicinity | Tornado/Water Spout";
$retVal['dust']="Dust | Low Drifting Dust | Blowing Dust | Sand | Blowing Sand | Low Drifting Sand | Dust/Sand Whirls | Dust/Sand Whirls in Vicinity | Dust Storm | Heavy Dust Storm | Dust Storm in Vicinity | Sand Storm | Heavy Sand Storm | Sand Storm in Vicinity";
$retVal['mist']="Haze";
return $retVal;
}
// end CLASS
} }
function endElement($parser, $name) {
global $itemname,$itemdata,$wxdata;
$wxdata[$itemname]=($itemdata);
$itemdata="";
}
function characterData($parser, $data) {
global $itemname,$itemdata,$wxdata;
$itemdata.=$data;
}
function defineIcons(){
// See http://weather.gov/data/current_obs/weather.php for source data for this function
$retVal['bkn']="Mostly Cloudy | Mostly Cloudy with Haze | Mostly Cloudy and Breezy";
$retVal['skc']="Fair | Clear | Fair with Haze | Clear with Haze | Fair and Breezy | Clear and Breezy";
$retVal['few']="A Few Clouds | A Few Clouds with Haze | A Few Clouds and Breezy";
$retVal['sct']="Partly Cloudy | Party Cloudy with Haze | Partly Cloudy and Breezy";
$retVal['ovc']="Overcast | Overcast with Haze | Overcast and Breezy";
$retVal['nfg']="Fog/Mist | Fog | Freezing Fog | Shallow Fog | Partial Fog | Patches of Fog | Fog in Vicinity | Freezing Fog in Vicinity | Shallow Fog in Vicinity | Partial Fog in Vicinity | Patches of Fog in Vicinity | Showers in Vicinity Fog | Light Freezing Fog | Heavy Freezing Fog";
$retVal['smoke']="Smoke";
$retVal['fzra']="Freezing Rain | Freezing Drizzle | Light Freezing Rain | Light Freezing Drizzle | Heavy Freezing Rain | Heavy Freezing Drizzle | Freezing Rain in Vicinity | Freezing Drizzle in Vicinity";
$retVal['ip']="Ice Pellets | Light Ice Pellets | Heavy Ice Pellets | Ice Pellets in Vicinity | Showers Ice Pellets | Thunderstorm Ice Pellets | Ice Crystals | Hail | Small Hail/Snow Pellets | Light Small Hail/Snow Pellets | Heavy Small Hail/Snow Pellets | Showers Hail | Hail Showers";
$retVal['mix']="Freezing Rain Snow | Light Freezing Rain Snow | Heavy Freezing Rain Snow | Freezing Drizzle Snow | Light Freezing Drizzle Snow | Heavy Freezing Drizzle Snow | Snow Freezing Rain| Light Snow Freezing Rain | Heavy Snow Freezing Rain | Snow Freezing Drizzle | Light Snow Freezing Drizzle | Heavy Snow Freezing Drizzle";
$retVal['raip']="Rain Ice Pellets | Light Rain Ice Pellets | Heavy Rain Ice Pellets | Drizzle Ice Pellets | Light Drizzle Ice Pellets | Heavy Drizzle Ice Pellets | Ice Pellets Rain | Light Ice Pellets Rain | Heavy Ice Pellets Rain | Ice Pellets Drizzle | Light Ice Pellets Drizzle | Heavy Ice Pellets Drizzle";
$retVal['rasn']="Rain Snow | Light Rain Snow | Heavy Rain Snow | Snow Rain | Light Snow Rain | Heavy Snow Rain | Drizzle Snow | Light Drizzle Snow | Heavy Drizzle Snow | Snow Drizzle | Light Snow Drizzle | Heavy Snow Drizzle";
$retVal['shra']="Rain Showers | Light Rain Showers | Heavy Rain Showers | Rain Showers in Vicinity | Light Showers Rain | Heavy Showers Rain | Showers Rain | Showers Rain in Vicinity | Rain Showers Fog/Mist | Light Rain Showers Fog/Mist | Heavy Rain Showers Fog/Mist | Rain Showers in Vicinity Fog/Mist | Light Showers Rain Fog/Mist | Heavy Showers Rain Fog/Mist | Showers Rain Fog/Mist | Showers Rain in Vicinity Fog/Mist";
$retVal['tsra']="Thunderstorm | Light Thunderstorm Rain | Heavy Thunderstorm Rain | Thunderstorm Rain Fog/Mist | Light Thunderstorm Rain Fog/Mist | Heavy Thunderstorm Rain Fog/Mist | Thunderstorm Showers in Vicinity | | Light Thunderstorm Rain Haze | Heavy Thunderstorm Rain Haze | Thunderstorm Fog | Light Thunderstorm Rain Fog | Heavy Thunderstorm Rain Fog | Thunderstorm Light Rain | Thunderstorm Heavy Rain | Thunderstorm Rain Fog/Mist | Thunderstorm Light Rain Fog/Mist | Thunderstorm Heavy Rain Fog/Mist | Thunderstorm in Vicinity Fog/Mist | Thunderstorm Showers in Vicinity | Thunderstorm in Vicinity | Thunderstorm in Vicinity Haze | Thunderstorm Haze in Vicinity | Thunderstorm Light Rain Haze | Thunderstorm Heavy Rain Haze | Thunderstorm Fog | Thunderstorm Light Rain Fog | Thunderstorm Heavy Rain Fog | Thunderstorm Hail | Light Thunderstorm Rain Hail | Heavy Thunderstorm Rain Hail | Thunderstorm Rain Hail Fog/Mist | Light Thunderstorm Rain Hail Fog/Mist | Heavy Thunderstorm Rain Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | | Light Thunderstorm Rain Hail Haze | Heavy Thunderstorm Rain Hail Haze | Thunderstorm Hail Fog | Light Thunderstorm Rain Hail Fog | Heavy Thunderstorm Rain Hail Fog | Thunderstorm Light Rain Hail | Thunderstorm Heavy Rain Hail | Thunderstorm Rain Hail Fog/Mist | Thunderstorm Light Rain Hail Fog/Mist | Thunderstorm Heavy Rain Hail Fog/Mist | Thunderstorm in Vicinity Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | Thunderstorm in Vicinity Hail | Thunderstorm in Vicinity Hail Haze | Thunderstorm Haze in Vicinity Hail | Thunderstorm Light Rain Hail Haze | Thunderstorm Heavy Rain Hail Haze | Thunderstorm Hail Fog | Thunderstorm Light Rain Hail Fog | Thunderstorm Heavy Rain Hail Fog | Thunderstorm Small Hail/Snow Pellets | Thunderstorm Rain Small Hail/Snow Pellets | Light Thunderstorm Rain Small Hail/Snow Pellets | Heavy Thunderstorm Rain Small Hail/Snow Pellets";
$retVal['sn']="Snow | Light Snow | Heavy Snow | Snow Showers | Light Snow Showers | Heavy Snow Showers | Showers Snow | Light Showers Snow | Heavy Showers Snow | Snow Fog/Mist | Light Snow Fog/Mist | Heavy Snow Fog/Mist | Snow Showers Fog/Mist | Light Snow Showers Fog/Mist | Heavy Snow Showers Fog/Mist | Showers Snow Fog/Mist | Light Showers Snow Fog/Mist | Heavy Showers Snow Fog/Mist | Snow Fog | Light Snow Fog | Heavy Snow Fog | Snow Showers Fog | Light Snow Showers Fog | Heavy Snow Showers Fog | Showers Snow Fog | Light Showers Snow Fog | Heavy Showers Snow Fog | Showers in Vicinity Snow | Snow Showers in Vicinity | Snow Showers in Vicinity Fog/Mist | Snow Showers in Vicinity Fog | Low Drifting Snow | Blowing Snow | Snow Low Drifting Snow | Snow Blowing Snow | Light Snow Low Drifting Snow | Light Snow Blowing Snow | Heavy Snow Low Drifting Snow | Heavy Snow Blowing Snow | Thunderstorm Snow | Light Thunderstorm Snow | Heavy Thunderstorm Snow | Snow Grains | Light Snow Grains | Heavy Snow Grains | Heavy Blowing Snow | Blowing Snow in Vicinity";
$retVal['wind']="Windy | Fair and Windy | A Few Clouds and Windy | Partly Cloudy and Windy | Mostly Cloudy and Windy | Overcast and Windy";
$retVal['hi_shwrs']="Showers in Vicinity | Showers in Vicinity Fog/Mist | Showers in Vicinity Fog | Showers in Vicinity Haze";
$retVal['fzrara']="Freezing Rain Rain | Light Freezing Rain Rain | Heavy Freezing Rain Rain | Rain Freezing Rain | Light Rain Freezing Rain | Heavy Rain Freezing Rain | Freezing Drizzle Rain | Light Freezing Drizzle Rain | Heavy Freezing Drizzle Rain | Rain Freezing Drizzle | Light Rain Freezing Drizzle | Heavy Rain Freezing Drizzle";
$retVal['hi_tsra']="Thunderstorm in Vicinity | Thunderstorm in Vicinity Fog/Mist | Thunderstorm in Vicinity Fog | Thunderstorm Haze in Vicinity | Thunderstorm in Vicinity Haze";
$retVal['ra1']="Light Rain | Drizzle | Light Drizzle | Heavy Drizzle | Light Rain Fog/Mist | Drizzle Fog/Mist | Light Drizzle Fog/Mist | Heavy Drizzle Fog/Mist | Light Rain Fog | Drizzle Fog | Light Drizzle Fog | Heavy Drizzle Fog";
$retVal['ra']="Rain | Heavy Rain | Rain Fog/Mist | Heavy Rain Fog/Mist | Rain Fog | Heavy Rain Fog";
$retVal['nsvrtsra']="Funnel Cloud | Funnel Cloud in Vicinity | Tornado/Water Spout";
$retVal['dust']="Dust | Low Drifting Dust | Blowing Dust | Sand | Blowing Sand | Low Drifting Sand | Dust/Sand Whirls | Dust/Sand Whirls in Vicinity | Dust Storm | Heavy Dust Storm | Dust Storm in Vicinity | Sand Storm | Heavy Sand Storm | Sand Storm in Vicinity";
$retVal['mist']="Haze";
return $retVal;
}
?> ?>

5
curtemp/test.php Normal file
View File

@ -0,0 +1,5 @@
<?php
require_once 'getweather.php';
$rpt = "KHVN";
$wxdata = GetWeather::get($rpt);
var_dump($rpt, $wxdata);