ID: 6671
Updated by: cardinal
Reported By: [EMAIL PROTECTED]
Old-Status: Open
Status: Duplicate
Bug Type: *XML functions
Operating system:
PHP Version: 4.0.2
Assigned To:
Comments:
This looks like a dup of 6175.
Previous Comments:
---------------------------------------------------------------------------
[2000-10-30 09:43:37] [EMAIL PROTECTED]
[EMAIL PROTECTED] also reports this to happen in:
PHP 4.0.2 running as ISAPI under Win98/ed1/PWS
RH6.2 and apache [various versions]
---------------------------------------------------------------------------
[2000-09-12 02:05:38] [EMAIL PROTECTED]
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 !
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=6671&edit=2
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]