hey guys , i am using this script to display current weather temperatures of city's in australia
<?php
echo "<div style='margin:10px 10px 10px 10px;'>";
$insideitem = false;
$tag = "";
$obst = "";
$tmp = "";
function startweather($parser, $name, $attrs) {
global $insideitem, $tag, $obst, $tmp;
if ($insideitem) {
$tag = $name;
} elseif ($name == "CC") {
$insideitem = true;
}
}
function endweather($parser, $name) {
global $insideitem, $tag, $obst, $tmp;
if ($name == "CC") {
echo "<p>$obst $tmp</p>";
$obst = "";
$tmp = "";
$insideitem = false;
$counted++;
}
}
function weatherdata($parser, $data) {
global $insideitem, $tag, $obst, $tmp;
if ($insideitem) {
$counted++;
switch ($tag) {
case "OBST":
$obst .= $data;
break;
case "TMP";
$tmp .= $data;
break;
}
}
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0075?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0112?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0016?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0089?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0001?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0057?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0023?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen("http://xoap.weather.com/weather/local/ASXX0032?cc=&unit=m&par=&key=","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
echo "</div>";
?>
I have tried to make this easyer using an array like this
$urls = array( "http://xoap.weather.com/weather/local/ASXX0075?cc=&unit=m&par=&key=",
*********** "http://xoap.weather.com/weather/local/ASXX0112?cc=&unit=m&par=&key=",
************ "http://xoap.weather.com/weather/local/ASXX0016?cc=&unit=m&par=&key=");
foreach ($urls as $feeds) {
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startweather", "endweather");
xml_set_character_data_handler($xml_parser, "weatherdata");
$fp = fopen($feeds,"r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
echo "</div>";
}
but that doesnt want to work and my server doesnt have error reporting ,
anyone know of a way i can do this ?