MFH: Fixed bug #35447 (xml_parse_into_struct() chokes on the UTF-8 BOM)

add test
This commit is contained in:
Rob Richards 2005-12-19 14:17:30 +00:00
parent 2a130b19fc
commit fc4ebee3e3
2 changed files with 50 additions and 5 deletions

View File

@ -405,15 +405,12 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *m
efree(parser);
return NULL;
}
if (encoding != NULL) {
parser->parser->encoding = xmlStrdup(encoding);
#if LIBXML_VERSION <= 20617
/* for older versions of libxml2, allow correct detection of
* charset in documents with a BOM: */
} else {
parser->parser->charset = XML_CHAR_ENCODING_NONE;
parser->parser->charset = XML_CHAR_ENCODING_NONE;
#endif
}
parser->parser->replaceEntities = 1;
parser->parser->wellFormed = 0;
if (sep != NULL) {

View File

@ -0,0 +1,48 @@
--TEST--
Bug #35447 (xml_parse_into_struct() chokes on the UTF-8 BOM)
--SKIPIF--
<?php
if (! @xml_parser_create_ns('ISO-8859-1')) { die("skip xml_parser_create_ns is not supported on this plattform");}
?>
--FILE--
<?php
$data = <<<END_OF_XML
\xEF\xBB\xBF<?xml version="1.0" encoding="utf-8"?\x3e
<!DOCTYPE bundle [
<!ELEMENT bundle (resource)+>
<!ELEMENT resource (#PCDATA)>
<!ATTLIST resource
key CDATA #REQUIRED
type (literal|pattern|sub) "literal"
>
]>
<resource key="rSeeYou">A bient&amp;244;t</resource>
END_OF_XML;
$parser = xml_parser_create_ns('UTF-8');
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
$result = xml_parse_into_struct($parser, $data, $vals, $index);
xml_parser_free($parser);
var_dump($vals);
?>
--EXPECT--
array(1) {
[0]=>
array(5) {
["tag"]=>
string(8) "resource"
["type"]=>
string(8) "complete"
["level"]=>
int(1)
["attributes"]=>
array(2) {
["key"]=>
string(7) "rSeeYou"
["type"]=>
string(7) "literal"
}
["value"]=>
string(13) "A bient&244;t"
}
}