ID: 41800
Updated by: [EMAIL PROTECTED]
Reported By: a dot anpilogov at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: *XML functions
Operating System: FreeBSD
PHP Version: 5.2.3
New Comment:
libxml does not check the validity of the encoding inside a text or
CDATA while creating them.
Unicode support in php will solve this issue as it detects badly
encoded data. But in the meantime, you have to use alternative solutions
like the iconv the mb strings function.
Not a (php) bug (bogus).
Previous Comments:
------------------------------------------------------------------------
[2007-06-25 16:29:15] a dot anpilogov at gmail dot com
<?php
$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument('1.0', 'UTF-8');
$xw->writeElement('root', "\x04\xA0");
$xw->endDocument();
header('Content-type: application/xml');
print $xw->outputMemory(true);
?>
Output will be an invalid XML.
Another example:
<?php
$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument('1.0', 'ISO-8559-1');
$xw->writeElement('root', "\x04\xA0");
$xw->endDocument();
header('Content-type: application/xml');
print $xw->outputMemory(true);
?>
Warning: XMLWriter::startDocument() [function.XMLWriter-startDocument]:
xmlTextWriterStartDocument : out of memory!
------------------------------------------------------------------------
[2007-06-25 13:08:10] a dot anpilogov at gmail dot com
Description:
------------
It is possible to create invalid XML file using XMLwriter. In my case,
the first symbol of Unicode text was 00 13, and XMLWriter just put it
out, so I had to call preg_replace('/^.{1}/us', '', $str) to make valid
UTF-8 string, than pass it to XMLWriter.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41800&edit=1