CVS: phpweather-1.x phpweather.inc,1.2,1.3
Brought to you by:
iridium
From: Martin G. <gim...@us...> - 2002-04-19 18:08:24
|
Update of /cvsroot/phpweather/phpweather-1.x In directory usw-pr-cvs1:/tmp/cvs-serv3010 Modified Files: phpweather.inc Log Message: We now use intval() together with round() when accessing arrays. Some versions of PHP didn't like it when we just used round() as round() returns a float and not an integer. It was Manuel Herrera <ing...@in...> tracked this bug down, thanks a lot! Index: phpweather.inc =================================================================== RCS file: /cvsroot/phpweather/phpweather-1.x/phpweather.inc,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- phpweather.inc 24 Mar 2002 19:52:32 -0000 1.2 +++ phpweather.inc 19 Apr 2002 18:08:20 -0000 1.3 @@ -695,24 +695,25 @@ /* now do ereg to get the actual values */ ereg("([0-9]{3}|VRB)([0-9]{2,3})(G([0-9]{2,3})?$windunit)", $part, $regs); if ($regs[1] == 'VRB') { - $decoded_metar['wind_deg'] = $strings['wind_vrb_long']; - $decoded_metar['wind_dir_text'] = $strings['wind_vrb_long']; - $decoded_metar['wind_dir_text_short'] = $strings['wind_vrb_short']; + $decoded_metar['wind_deg'] = $strings['wind_vrb_long']; + $decoded_metar['wind_dir_text'] = $strings['wind_vrb_long']; + $decoded_metar['wind_dir_text_short'] = $strings['wind_vrb_short']; } else { - $decoded_metar['wind_deg'] = $regs[1]; - $decoded_metar['wind_dir_text'] = $wind_dir_text_array[round($regs[1]/22.5)]; - $decoded_metar['wind_dir_text_short'] = $wind_dir_text_short_array[round($regs[1]/22.5)]; + $decoded_metar['wind_deg'] = $regs[1]; + $decoded_metar['wind_dir_text'] = + $wind_dir_text_array[intval(round($regs[1]/22.5))]; + $decoded_metar['wind_dir_text_short'] = + $wind_dir_text_short_array[intval(round($regs[1]/22.5))]; } store_speed($regs[2], - $windunit, - $decoded_metar['wind_meters_per_second'], - $decoded_metar['wind_knots'], - $decoded_metar['wind_miles_per_hour'] - ); + $windunit, + $decoded_metar['wind_meters_per_second'], + $decoded_metar['wind_knots'], + $decoded_metar['wind_miles_per_hour']); if (isset($regs[4])) { - /* We have a report with information about the gust. - First we have the gust measured in knots: */ + /* We have a report with information about the gust. First we + have the gust measured in knots: */ store_speed($regs[4],$windunit, $decoded_metar['wind_gust_meters_per_second'], $decoded_metar['wind_gust_knots'], @@ -726,43 +727,50 @@ $decoded_metar['wind_var_end'] = $regs[2]; } elseif ($part == 9999) { /* A strange value. When you look at other pages you see it - interpreted like this (where I use > to signify 'Greater - than'): */ + interpreted like this (where I use > to signify 'Greater + than'): */ $decoded_metar['visibility_miles'] = '>7'; $decoded_metar['visibility_km'] = '>11.3'; } elseif(ereg('^([0-9]{4})$', $part, $regs)) { /* * Visibility in meters (4 digits only) */ - /* The visibility measured in kilometers, rounded to one decimal place. */ $decoded_metar['visibility_km'] = number_format($regs[1]/1000, 1); - /* The visibility measured in miles, rounded to one decimal place. */ - $decoded_metar['visibility_miles'] = number_format( ($regs[1]/1000) / 1.609344, 1); + $decoded_metar['visibility_miles'] = + number_format( ($regs[1]/1000) / 1.609344, 1); } elseif (ereg('^[0-9]$', $part)) { /* * Temp Visibility Group, single digit followed by space */ $decoded_metar['temp_visibility_miles'] = $part; - } elseif (ereg('^M?(([0-9]?)[ ]?([0-9])(/?)([0-9]*))SM$', $decoded_metar['temp_visibility_miles'].' '.$parts[$i], $regs)) { + } elseif (ereg('^M?(([0-9]?)[ ]?([0-9])(/?)([0-9]*))SM$', + $decoded_metar['temp_visibility_miles'] . ' ' . + $parts[$i], $regs)) { /* * Visibility Group */ if ($regs[4] == '/') { - $vis_miles = $regs[2] + $regs[3]/$regs[5]; + $vis_miles = $regs[2] + $regs[3]/$regs[5]; } else { - $vis_miles = $regs[1]; + $vis_miles = $regs[1]; } if ($regs[0][0] == 'M') { - /* The visibility measured in miles, prefixed with < to indicate 'Less than' */ - $decoded_metar['visibility_miles'] = '<' . number_format($vis_miles, 1); - /* The visibility measured in kilometers. The value is rounded - to one decimal place, prefixed with < to indicate 'Less than' */ - $decoded_metar['visibility_km'] = '<' . number_format($vis_miles * 1.609344, 1); + /* The visibility measured in miles, prefixed with < to + indicate 'Less than' */ + $decoded_metar['visibility_miles'] = + '<' . number_format($vis_miles, 1); + /* The visibility measured in kilometers. The value is rounded + to one decimal place, prefixed with < to indicate 'Less + than' */ + $decoded_metar['visibility_km'] = + '<' . number_format($vis_miles * 1.609344, 1); } else { - /* The visibility measured in mile.s */ - $decoded_metar['visibility_miles'] = number_format($vis_miles, 1); - /* The visibility measured in kilometers, rounded to one decimal place. */ - $decoded_metar['visibility_km'] = number_format($vis_miles * 1.609344, 1); + /* The visibility measured in mile.s */ + $decoded_metar['visibility_miles'] = number_format($vis_miles, 1); + /* The visibility measured in kilometers, rounded to one + decimal place. */ + $decoded_metar['visibility_km'] = + number_format($vis_miles * 1.609344, 1); } } elseif ($part == 'CAVOK') { /* CAVOK: Used when the visibility is greather than 10 |