- Code: Select all
class xml_funkt {
var $parser;
function xml_funkt() {
$this->parser = xml_parser_create();
xml_set_object($this->parser, &$this);
xml_set_element_handler($this->parser, 'open_tag', 'close_tag');
xml_set_character_data_handler($this->parser, "cdata");
}
function parse($data){
xml_parse($this->parser,$data);
}
function open_tag($parser,$tag,$attributes){
GLOBAL $puffer;
$puffer[] = array('open',$tag,$attributes);
}
function close_tag($parser,$tag){
GLOBAL $puffer;
$puffer[] = array('close',$tag);
}
function cdata($parser,$cdata){
GLOBAL $puffer;
$puffer[] = array('cdata',$cdata);
}
}
Das ganze wird dann so geladen:
- Code: Select all
//$text wird von irgendwo her geholt (Umlaute sind da)
$xml_parser = new xml_funkt();
$xml_parser->parse($text);
Wenn ich jetzt aber ein var_dump von $puffer mache, ist ab der Stelle wo ein Umlaut sein sollte Schluss, dh der restliche Text ist verloren gegangen.
Kennt vielleicht jemand das Problem oder einen Lösungsvorschlag?