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
|