ugrás a tartalomhoz

"&" értelmezése PHP SAX feldolgozásnál

Anonymous · 2005. Okt. 1. (Szo), 20.50
Most ismerkedem az XML-el. Kezdésnek egy egyszerű RSS olvasót barkácsolnék, de ha az XML fájlban "&" karaktersorozat van, akkor megőrül.
A hibára kihegyezett letisztitott kód:

<?php

$file = "http://hup.hu/backend.php";

function startElement($parser, $name, $attribs) { // <name>
	
	global $link;
	
	if ($name == "LINK")
		$link = true;	
		
}

function dataHandler($parser, $data){ // data

	global $link;
	
	if ($link)	
		echo $data."<br>";
}

function endElement($parser, $name){ //</name>

	global $link;
		
	if ($name == "LINK")	
		$link = false;	
		
}

$xml_parser = xml_parser_create();
xml_set_character_data_handler($xml_parser, 'dataHandler'); 
xml_set_element_handler($xml_parser, "startElement", "endElement");

if (!($fp = fopen($file, "r"))) {
   die("could not open XML input");
}

while ($xml_data = fread($fp, 4096)) {
   if (!xml_parse($xml_parser, $xml_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); 

?>
Ha a "&amp;" karaktersorozatot str_replace()-el kicserélem pl.: "_"-ra, akkor jó, de enélkül ezt adja egy linkre:
http://www.hup.hu/modules.php?name=News
&
file=article
&
sid=9773
&
mode=nested

és ugye ennek kellene lenni:
http://www.hup.hu/modules.php?name=News&file=article&sid=9773&mode=nested

olyan mintha minden "&amp;"-ra újra meghívná a dataHandler()-t. Mi lehet a gond?

üdv.: Zsolt