diff options
Diffstat (limited to 'ext/xml/tests/bug35447.phpt')
-rw-r--r-- | ext/xml/tests/bug35447.phpt | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/ext/xml/tests/bug35447.phpt b/ext/xml/tests/bug35447.phpt new file mode 100644 index 0000000000..ba8b81e46c --- /dev/null +++ b/ext/xml/tests/bug35447.phpt @@ -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&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" + } +} |