ID: 34591
User updated by: priit at ww dot ee
Reported By: priit at ww dot ee
-Status: Bogus
+Status: Open
Bug Type: XML related
Operating System: Windows XP SP2
PHP Version: 5.0.5
New Comment:
...
Previous Comments:
------------------------------------------------------------------------
[2005-09-21 23:38:27] priit at ww dot ee
charset has nothing to do with it. I tried converting the input to
latin1 first and utf8 and changed the xml_parser_create charset
accordingly, but the result was the same always! the characters in my
example xml are compatible with ISO-8859-1 although the xml input it
sayd to be ISO-8859-15 ... if I changed the xml itself also to
something else the result was still the same.
------------------------------------------------------------------------
[2005-09-21 23:35:56] priit at ww dot ee
<?php
$file = 'failid/kontakt.xml';
function startElement($parser, $name, $attrs)
{
global $temp_name;
$temp_name = $name;
}
function endElement($parser, $name)
{
global $temp_name,$temp_value,$moodul;
if($temp_name==$name) {$moodul .= "($temp_name : $temp_value)\n";}
}
function characterData($parser, $data)
{
global $temp_value;
$temp_value = $data;
}
$moodul = '<PRE>';
$xml_parser = xml_parser_create('ISO-8859-1');
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) { die("could not open XML input"); }
$data = fread($fp, filesize($file));
if(!xml_parse($xml_parser, $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);
$moodul .= '</PRE>';
echo $moodul;
?>
------------------------------------------------------------------------
[2005-09-21 23:17:34] [EMAIL PROTECTED]
Try using compatible charset.
------------------------------------------------------------------------
[2005-09-21 23:15:36] priit at ww dot ee
using php code:
$xml_parser = xml_parser_create('ISO-8859-1');
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$data = fread($fp, filesize($file));
if(!xml_parse($xml_parser, $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);
------------------------------------------------------------------------
[2005-09-21 23:04:27] [EMAIL PROTECTED]
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc.
If possible, make the script source available online and provide
an URL to it here. Try to avoid embedding huge scripts into the report.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/34591
--
Edit this bug report at http://bugs.php.net/?id=34591&edit=1