|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2000-10-30 09:43 UTC] stas@php.net
[2001-05-07 16:11 UTC] cardinal@php.net
[2002-06-18 18:13 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 07:00:01 2025 UTC |
here is a little script which works with php4.0.1pl2 and crash ( Segmentation fault (11) ) with php4.0.2 ! both version where compiled with : ./configure --disable-debug --with-apxs=/usr/sbin/apxs --with-regex=system --with-zlib --with-gd --with-db2 --with-gdbm --with-config-file-path=/etc/httpd --enable-trans-sid the php.ini is the same for both. ========script : cut here================ <head> <title>test xml problem</title> </head> <body> <h1>test xml problem</h1> <pre> <script language="php"> class XmlParse { // variable members var $parser; //*********************************************************** // constructor function XmlParse() { $this->parser = xml_parser_create(); xml_set_object($this->parser,&$this); xml_set_element_handler($this->parser,"tag_open","tag_close"); xml_set_character_data_handler($this->parser,"core_data"); } //*********************************************************** // handler (private) functions function tag_open($parser,$tag,$attributes) { $this->debug1("tag_open",$tag.$this->viewarray($attributes)); } function tag_close($parser,$tag) { $this->debug1("tag_close",$tag); } function core_data($parser,$cdata) { $this->debug1("core_data",$cdata); } //*********************************************************** // parse (public) function function parse($data) { if (!xml_parse($this->parser, $data, 1)) { $error = sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->parser)), xml_get_current_line_number($this->parser)); echo $error; } xml_parser_free($this->parser); } //*********************************************************** // debug function function debug1($title,$msg) { echo $title; echo " «"; echo $msg; echo "» "; echo "\n"; } function viewarray($arr) { $str = ""; if ( is_array($arr) ) { while ( list($key,$val) = each($arr) ) { $str .= " ".$key."=".$val; } } return $str; } } $xmldata = '<?xml version="1.0"?><tab><line><auteur>zimmer bradley</auteur><titre>la matrice fant?me</titre><serie>la romance de t?n?breuse</serie><type>ser20</type><moyenne>16</moyenne><genre>0x00000004</genre><key>0000658</key></line></tab>'; $xfx = new XmlParse(); $xfx->parse($xmldata); </script> </pre> </body> ==========cut here================ Some other tests i have made shows that XML parsing works well with standard functions but does not work any longer with class methods. I use xml_set_object($this->parser,&$this); thank you for your attention !