PHP implexml实体

2022-04-13 00:00:00 php simplexml entities

这里发生了什么?

$string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
    <album>
        <img src="002.jpg" caption="w&aacute;ssup?" />
    </album>
XML;

$xml = simplexml_load_string($string);
// $xmlobj = simplexml_load_file("xml.xml"); // same thing

echo "<pre>";
var_dump($xml);
echo "</pre>";

错误:

警告:implexml_Load_String()[unction.implexml-Load-String]:Entity:第5行:解析器错误:未定义Entity‘a急性’


解决方案

&aacute不是XML entity--您想到的是HTML.

在XML中通常按原样使用特殊字符-输入数据上的html_entity_decode()(不要忘记指定UTF-8作为字符集)应该可以做到这一点:

$string = html_entity_decode($string, ENT_QUOTES, "utf-8");

相关文章