来自ENT_QUOTES的SimpleXML输出问题

时间:2015-05-07 18:51:46

标签: php simplexml

我有一个表格,我试图确保我处理特殊字符。 表单中的一个字段是Title,在表单中定义为输入类型=' text'。 作为测试输入的值类似于(Ann& Andy' First" Test" Pic)。 为清楚起见,输入的文本只是括号内的内容,不包括括号。

我将标题发布到变量中,如下所示:

if (isset($_POST["submitupdate"]))  {
$form_title = htmlspecialchars($_POST["title"], ENT_QUOTES, 'UTF-8');
}

在进程结束时,我将$ form_title中的值写入XML节点:

$xml = simplexml_load_file('mydata.xml');
$sxe = new SimpleXMLElement($xml->asXML());
$newparent = $sxe->addChild("Book");
$newparent->addChild("Title", $form_title);
$sxe->asXML('mydata.xml');

我检查XML文件,发现文件中的文字显示为Ann & Andy's First "Test" Pic,而不是我期望得到的文件,应该是Ann & Andy$apos;s First "Test" Pic

要回答最明显的问题,我使用的是ENT_QUOTES,而不是ENT_NOQUOTES。 为了确保我不会失去理智,我尝试了两种方式并获得了完全相同的结果。

我不能让我的生活对此有任何意义。有什么想法吗?

标题和问题更新了关于deceze的建议。

0 个答案:

没有答案