|    
			
				19/01/2006, 08:01
			
			
			  | 
  |   |  | /** @package Moderador */ |  |  Fecha de Ingreso: julio-2004 Ubicación: sèveR led onieR lE 
						Mensajes: 9.368
					 Antigüedad: 21 años, 3 meses Puntos: 102 |  | 
  |   ... funciones.  
Para no complicarse la vida, podrías crear un array con las URL a los XML y poner el parseo dentro de un foreach()   ...  
--------------- 
Prueba con esto:   Código PHP:    <?php/*  PHP RSS Reader v1.1
 By Richard James Kendall
 Bugs to [email protected]
 Free to use, please acknowledge me
 
 Place the URL of an RSS feed in the $file variable.
 
 The $rss_channel array will be filled with data from the feed,
 every RSS feed is different by by and large it should contain:
 
 Array {
 [TITLE] = feed title
 [DESCRIPTION] = feed description
 [LINK] = link to their website
 
 [IMAGE] = Array {
 [url] = url of image
 [DESCRIPTION] = alt text of image
 }
 
 [ITEMS] = Array {
 [0] = Array {
 [TITLE] = item title
 [DESCRIPTION] = item description
 [LINK = a link to the story
 }
 .
 .
 .
 }
 }
 
 By default it retrives the Reuters Oddly Enough RSS feed. The data is put into the array
 structure so you can format the information as you see fit.
 */
 set_time_limit(0);
 
 
 
 $rss_channel = array();
 $currently_writing = "";
 $main = "";
 $item_counter = 0;
 
 function startElement($parser, $name, $attrs) {
 global $rss_channel, $currently_writing, $main;
 switch($name) {
 case "RSS":
 case "RDF:RDF":
 case "ITEMS":
 $currently_writing = "";
 break;
 case "CHANNEL":
 $main = "CHANNEL";
 break;
 case "IMAGE":
 $main = "IMAGE";
 $rss_channel["IMAGE"] = array();
 break;
 case "ITEM":
 $main = "ITEMS";
 break;
 default:
 $currently_writing = $name;
 break;
 }
 }
 
 function endElement($parser, $name) {
 global $rss_channel, $currently_writing, $item_counter;
 $currently_writing = "";
 if ($name == "ITEM") {
 $item_counter++;
 }
 }
 
 function characterData($parser, $data) {
 global $rss_channel, $currently_writing, $main, $item_counter;
 if ($currently_writing != "") {
 switch($main) {
 case "CHANNEL":
 if (isset($rss_channel[$currently_writing])) {
 $rss_channel[$currently_writing] .= $data;
 } else {
 $rss_channel[$currently_writing] = $data;
 }
 break;
 case "IMAGE":
 if (isset($rss_channel[$main][$currently_writing])) {
 $rss_channel[$main][$currently_writing] .= $data;
 } else {
 $rss_channel[$main][$currently_writing] = $data;
 }
 break;
 case "ITEMS":
 if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
 $rss_channel[$main][$item_counter][$currently_writing] .= $data;
 } else {
 //print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");
 $rss_channel[$main][$item_counter][$currently_writing] = $data;
 }
 break;
 }
 }
 }
 
 // output as HTML <<- lo movemos para que se imprima antes que todo
 print ("<html><head><title>PHP RSS Reader</title></head><body>");
 
 foreach($files as $file) { // << recorremos la matriz
 $xml_parser = xml_parser_create();
 xml_set_element_handler($xml_parser, "startElement", "endElement");
 xml_set_character_data_handler($xml_parser, "characterData");
 if (!($fp = fopen($file, "r"))) {
 die("could not open XML input");
 }
 
 while ($data = fread($fp, 4096)) {
 if (!xml_parse($xml_parser, $data, feof($fp))) {
 die(sprintf("XML error: %s at line %d",
 xml_error_string(xml_get_error_code($xml_parser)),
 xml_get_current_line_number($xml_parser)));
 }
 }
 xml_parser_free($xml_parser);
 
 
 if (isset($rss_channel["IMAGE"])) {
 print ("<a href=\"" . $rss_channel["LINK"] . "\" target=\"_blank\"><img border=\"0\" src=\"" . $rss_channel["IMAGE"]["URL"] . "\" align=\"middle\" alt=\"" . $rss_channel["IMAGE"]["TITLE"] . "\"></a>  <font size=\"5\">" . utf8_decode(trim(addslashes($rss_channel["TITLE"]))) . "</font><br><br>");
 } else {
 print ("<font size=\"5\">" . $rss_channel["TITLE"] . "</font><br><br>");
 }
 print ("<i>" . utf8_decode(trim(addslashes($rss_channel["DESCRIPTION"]))) . "</i><br><br>");
 $rss_channel=array(); // << borramos datos almacenados
 }
 ?>
  y lo emplearías así:   Código PHP:    <?$files[]= "http://www.forosdelweb.com/index.xml";
 $files[]= "http://newsrss.bbc.co.uk/rss/spanish/news/rss.xml";
 $files[]= "http://rss.news.yahoo.com/rss/topstories";
 
 include("parser.php");
 ?>
  ... ve que se intentó hacer las modificaciones mínimas. Parece que sirve...        |