just thought i should add the source
MILDURA (working)
<?php

//weather("Mildura","http://www.bom.gov.au/cgi-bin/wrap_fwo.pl?IDV17001.txt";
,"bomonster.htm");

weather("Mildura","http://www.bom.gov.au/cgi-bin/wrap_fwo.pl?IDV17001.txt",";
bomonster.htm");

function weather($placename, $inputfilename, $templatefilename){

//
############################################################################
#
// # BOMonster 0.1
// # Author: Matthew Cook ([EMAIL PROTECTED])
// #
// # How to use:
// # <$placename> is the place you want to find the forecasts for
// # <$inputfilename> is the file you want to grab the data from
// # <$templatefilename> is the file you want to put the forecasts into
// # Details are in readme.txt
// #
// # Released under the GNU GPL (http://www.gnu.org/copyleft/gpl.html)
//
############################################################################
#

 //try to connect to target - IDV60035
 if(!$fp=fopen($inputfilename ,"r")) {
  echo "Can't Open Weather File" ;
 }
 else  {
  //initalise $content variable
  $content = "";

  // read content
  while(!feof($fp)){
   $content.=fgets($fp,1024);
  }

         //close  connection
  fclose($fp);

  //create new string containing data for selected place
  preg_match("|$placename.*?\\n\\n.*?\\n\\n|s", $content, $temp);

  //turn the first element of the temp array into a variable
  $temp_content = $temp[0];

  //split place_content into an array by multiple spaces and single [NL]s
  $temp_array = preg_split ("/[\s]{2,}|[\n]/", $temp_content);

  //clean out all the "Min" and "Max"
  $temp_array = str_replace("Min", "", $temp_array);
  $temp_array = str_replace("Max", "", $temp_array);

  //trim entries
  for ($counter = 0; $counter <= count($temp_array)-1; $counter++){
   trim($temp_array[$counter]);
  }

  //check for today's description > 80 char
  if (is_numeric($temp_array[3]) == FALSE){
     $temp_array[2] = $temp_array[2]." ".$temp_array[3];
   for ($counter = 3; $counter <= count($temp_array)-2; $counter++) {
    $temp_array[$counter] = $temp_array[$counter+1];
   }
  }

              //print_r($temp_array);

              //determine if it's the afternoon/evening variant or not
              if (preg_match("/Tonight/", $temp_array[1])){
                 $arvomod = 1;
                 $temp_array = str_replace("Tonight and ", "", $temp_array);
              } else {
                 $arvomod = 0;
              }

  //convert $temp_array into $place_array
              $place_array["name"][0] = $temp_array[0];
  $place_array["name"][1] = $temp_array[1];
  $place_array["name"][2] = $temp_array[6+$arvomod];
  $place_array["name"][3] = $temp_array[10+$arvomod];
  $place_array["name"][4] = $temp_array[14+$arvomod];

  $place_array["description"][1] = $temp_array[2];
  $place_array["description"][2] = $temp_array[7+$arvomod];
  $place_array["description"][3] = $temp_array[11+$arvomod];
  $place_array["description"][4] = $temp_array[15+$arvomod];

              if ($arvomod = 1){
                 $place_array["min_temp"][1] = $temp_array[3];
              }
  $place_array["min_temp"][2] = $temp_array[8+$arvomod];
  $place_array["min_temp"][3] = $temp_array[12+$arvomod];
  $place_array["min_temp"][4] = $temp_array[16+$arvomod];

  $place_array["max_temp"][1] = $temp_array[3+$arvomod];
  $place_array["max_temp"][2] = $temp_array[9+$arvomod];
  $place_array["max_temp"][3] = $temp_array[13+$arvomod];
  $place_array["max_temp"][4] = $temp_array[17+$arvomod];

  $place_array["precip"][1] = $temp_array[5+$arvomod];

  //determine the appropriate images and alt tags
  for ($counter = 1; $counter <= 4; $counter++){
   if (stristr($place_array["description"][$counter], "thunderstorm")){
    $place_array["image"][$counter] = "thunder";
    $place_array["alt_tag"][$counter] = "Thunderstorms";
   } elseif (stristr($place_array["description"][$counter], "shower")){
    $place_array["image"][$counter] = "shower";
    $place_array["alt_tag"][$counter] = "Showers";
   } elseif (stristr($place_array["description"][$counter], "fine")){
    $place_array["image"][$counter] = "fine";
    $place_array["alt_tag"][$counter] = "Fine";
   } else {
    $place_array["image"][$counter] = "unknown";
    $place_array["alt_tag"][$counter] = "Unknown";
   }
  }

              //create short names
              for ($counter = 0; $counter <= 4; $counter++){
                      $place_array["short_name"][$counter] =
substr($place_array["name"][$counter], 0, 3);
              }
        }
  //declare template
  $template = "";

  //open template
  if(!$fp=fopen($templatefilename ,"r")) {
   echo "Can't Open Template File" ;
  }  else  {
   // read template
   while(!feof($fp)){
    $template.=fgets($fp,1024);
   }

   //close  connection
   fclose($fp);

   //replace some strings
   $patterns = array(
      "/(\%Name\[)(.*?)(\]\%)/se",
      "/(\%Description\[)(.*?)(\]\%)/se",
      "/(\%Min_Temp\[)(.*?)(\]\%)/se",
      "/(\%Max_Temp\[)(.*?)(\]\%)/se",
      "/(\%Precip\[)(.*?)(\]\%)/se",
      "/(\%Image\[)(.*?)(\]\%)/se",
      "/(\%Alt_Tag\[)(.*?)(\]\%)/se",
            "/(\%Short_Name\[)(.*?)(\]\%)/se"
   );

   $replace = array(
      '$place_array["name"]["\\2"]',
      '$place_array["description"]["\\2"]',
'$place_array["min_temp"]["\\2"]',
      '$place_array["max_temp"]["\\2"]',
      '$place_array["precip"]["\\2"]',
      '$place_array["image"]["\\2"]',
      '$place_array["alt_tag"]["\\2"]',

'$place_array["short_name"]["\\2"]'
   );


   $template = preg_replace ($patterns, $replace, $template);

   print($template);
 }

}

?>

AND What i have done for A.C.T FORECAST...
<?php

//weather("A.C.T.
FORECAST","http://www.bom.gov.au/cgi-bin/wrap_fwo.pl?IDN10035.txt","bomonste
r.htm");

weather("A.C.T.
FORECAST","http://www.bom.gov.au/cgi-bin/wrap_fwo.pl?IDN10035.txt","bomonste
r.htm");

function weather($placename, $inputfilename, $templatefilename){

//
############################################################################
#
// # BOMonster 0.1
// # Author: Matthew Cook ([EMAIL PROTECTED])
// #
// # How to use:
// # <$placename> is the place you want to find the forecasts for
// # <$inputfilename> is the file you want to grab the data from
// # <$templatefilename> is the file you want to put the forecasts into
// # Details are in readme.txt
// #
// # Released under the GNU GPL (http://www.gnu.org/copyleft/gpl.html)
//
############################################################################
#

 //try to connect to target - IDN10035
 if(!$fp=fopen($inputfilename ,"r")) {
  echo "Can't Open Weather File" ;
 }
 else  {
  //initalise $content variable
  $content = "";

  // read content
  while(!feof($fp)){
   $content.=fgets($fp,1024);
  }

         //close  connection
  fclose($fp);

  //create new string containing data for selected place
  preg_match("|$Canberra.*?\\n\\n.*?\\n\\n|s", $content, $temp);

  //turn the first element of the temp array into a variable
  $temp_content = $temp[0];

  //split place_content into an array by multiple spaces and single [NL]s
  $temp_array = preg_split ("/[\s]{2,}|[\n]/", $temp_content);

  //clean out all the "Min" and "Max"
  $temp_array = str_replace("Min", "", $temp_array);
  $temp_array = str_replace("Max", "", $temp_array);

  //trim entries
  for ($counter = 0; $counter <= count($temp_array)-1; $counter++){
   trim($temp_array[$counter]);
  }

  //check for today's description > 80 char
  if (is_numeric($temp_array[3]) == FALSE){
     $temp_array[2] = $temp_array[2]." ".$temp_array[3];
   for ($counter = 3; $counter <= count($temp_array)-2; $counter++) {
    $temp_array[$counter] = $temp_array[$counter+1];
   }
  }

              //print_r($temp_array);

              //determine if it's the afternoon/evening variant or not
              if (preg_match("/tonight/", $temp_array[1])){
                 $arvomod = 1;
                 $temp_array = str_replace("Tonight and ", "", $temp_array);
              } else {
                 $arvomod = 0;
              }

  //convert $temp_array into $place_array
              $place_array["name"][0] = $temp_array[0];
  $place_array["name"][1] = $temp_array[1];
  $place_array["name"][2] = $temp_array[6+$arvomod];
  $place_array["name"][3] = $temp_array[10+$arvomod];
  $place_array["name"][4] = $temp_array[14+$arvomod];

  $place_array["description"][1] = $temp_array[2];
  $place_array["description"][2] = $temp_array[7+$arvomod];
  $place_array["description"][3] = $temp_array[11+$arvomod];
  $place_array["description"][4] = $temp_array[15+$arvomod];

              if ($arvomod = 1){
                 $place_array["min_temp"][1] = $temp_array[3];
              }
  $place_array["min_temp"][2] = $temp_array[8+$arvomod];
  $place_array["min_temp"][3] = $temp_array[12+$arvomod];
  $place_array["min_temp"][4] = $temp_array[16+$arvomod];

  $place_array["max_temp"][1] = $temp_array[3+$arvomod];
  $place_array["max_temp"][2] = $temp_array[9+$arvomod];
  $place_array["max_temp"][3] = $temp_array[13+$arvomod];
  $place_array["max_temp"][4] = $temp_array[17+$arvomod];

  $place_array["precip"][1] = $temp_array[5+$arvomod];

  //determine the appropriate images and alt tags
  for ($counter = 1; $counter <= 4; $counter++){
   if (stristr($place_array["description"][$counter], "thunderstorm")){
    $place_array["image"][$counter] = "thunder";
    $place_array["alt_tag"][$counter] = "Thunderstorms";
   } elseif (stristr($place_array["description"][$counter], "shower")){
    $place_array["image"][$counter] = "shower";
    $place_array["alt_tag"][$counter] = "Showers";
   } elseif (stristr($place_array["description"][$counter], "fine")){
    $place_array["image"][$counter] = "fine";
    $place_array["alt_tag"][$counter] = "Fine";
   } else {
    $place_array["image"][$counter] = "unknown";
    $place_array["alt_tag"][$counter] = "Unknown";
   }
  }

              //create short names
              for ($counter = 0; $counter <= 4; $counter++){
                      $place_array["short_name"][$counter] =
substr($place_array["name"][$counter], 0, 3);
              }
        }
  //declare template
  $template = "";

  //open template
  if(!$fp=fopen($templatefilename ,"r")) {
   echo "Can't Open Template File" ;
  }  else  {
   // read template
   while(!feof($fp)){
    $template.=fgets($fp,1024);
   }

   //close  connection
   fclose($fp);

   //replace some strings
   $patterns = array(
      "/(\%Name\[)(.*?)(\]\%)/se",
      "/(\%Description\[)(.*?)(\]\%)/se",
      "/(\%Min_Temp\[)(.*?)(\]\%)/se",
      "/(\%Max_Temp\[)(.*?)(\]\%)/se",
      "/(\%Precip\[)(.*?)(\]\%)/se",
      "/(\%Image\[)(.*?)(\]\%)/se",
      "/(\%Alt_Tag\[)(.*?)(\]\%)/se",
            "/(\%Short_Name\[)(.*?)(\]\%)/se"
   );

   $replace = array(
      '$place_array["name"]["\\2"]',
      '$place_array["description"]["\\2"]',
'$place_array["min_temp"]["\\2"]',
      '$place_array["max_temp"]["\\2"]',
      '$place_array["precip"]["\\2"]',
      '$place_array["image"]["\\2"]',
      '$place_array["alt_tag"]["\\2"]',

'$place_array["short_name"]["\\2"]'
   );


   $template = preg_replace ($patterns, $replace, $template);

   print($template);
 }

}

?>

--
Cheers
---------------------------------------------------------
Simon Angell
Canberra ACT
www.canberra-wx.com
---------------------------------------------------------
Member of:
Australian Severe Weather Association.
www.severeweather.asn.au
---------------------------------------------------------
This email is virus free.
Scanned before leaving my mailbox
using Norton Antivirus 2002 for Win2k
Scanned with the latest definition File.




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to