Salve ragazzi potete aiutarmi con questo codice?
Non mi funziona? Piu specificamente durante l'elaborazione non mi riempe l'array $rss_channel_info e il primo elemento (ossia l'indice 0) dell' array $rss_items



codice:
<?php

 define("XML_RSS", 0);
 define("XML_CHANNEL", 1);
 define("XML_ITEM", 2);

 // function xml_start_element_handler
 function xml_start_element_handler($xml_parser, $element_name, $attributes) {
 
  if($element_name=="CHANNEL")
	$GLOBALS["xml_current_node"]=XML_CHANNEL;
  else if($element_name=="ITEM")
	$GLOBALS["xml_current_node"]=XML_ITEM;

  $GLOBALS["xml_current_tag_state"]=$element_name;
 }

 // function xml_end_element_handler
 function xml_end_element_handler($xml_parser, $element_name) {

  if($element_name=="ITEM")
	$GLOBALS["xml_items_counter"]++;
 }

 // function xml_character_data_handler
 function xml_character_data_handler($xml_parser, $data) {

  switch($GLOBALS["xml_current_node"]) {
   case XML_ITEM:

	if($GLOBALS["xml_current_tag_state"]=="TITLE")
		$GLOBALS["rss_items"][$GLOBALS["xml_items_counter"]]["title"]=$data;
	else if($GLOBALS["xml_current_tag_state"]=="DESCRIPTION")
		$GLOBALS["rss_items"][$GLOBALS["xml_items_counter"]]["description"]=$data;
	else if($GLOBALS["xml_current_tag_state"]=="LINK")
		$GLOBALS["rss_items"][$GLOBALS["xml_items_counter"]]["link"]=$data;

	break;
   case XML_CHANNEL:

	if($GLOBALS["xml_current_tag_state"]=="TITLE")
		$GLOBALS["rss_channel_info"]["title"]=$data;
	else if($GLOBALS["xml_current_tag_state"]=="DESCRIPTION")
		$GLOBALS["rss_channel_info"]["description"]=$data;
	else if($GLOBALS["xml_current_tag_state"]=="LANGUAGE")
		$GLOBALS["rss_channel_info"]["language"]=$data;
	break;
  }
 }

 $file_name="./rss.xml";
 $xml_current_tag_state="";
 $xml_current_node=-1;
 $xml_items_counter=0;
 $rss_channel_info=array();
 $rss_items=array();


 $xml_parser=xml_parser_create("utf-8");
 xml_set_element_handler($xml_parser, "xml_start_element_handler", "xml_end_element_handler");
 xml_set_character_data_handler($xml_parser, "xml_character_data_handler");

 if(!$fp=fopen($file_name, "r")) die("Impossibile aprire il file RSS.");
 while($data=fread($fp, 5120)) if(!xml_parse($xml_parser, $data, feof($fp))) die("Impossibile analizzare il file RSS.");
 fclose($fp);
 xml_parser_free($xml_parser);

 print_r($rss_channel_info);
 print("<hr>");
 print_r($rss_items);

?>