DOMDocument在PHP中转义结束字符

时间:2011-09-22 07:26:18

标签: php dom escaping

我有类DOMDocument的问题。我用这个php类编辑一个html模板。我在这个模板中有这个元标记:

<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>

但是在编辑之后,虽然我没有编辑这个标签,但它会转义结束字符“/”并且它不起作用。 这是脚本:

$textValue = $company.'<br />'.$firstName.' '.$lastName.'<br />'.$adress;

$values = array($company, $firstName.' '.$lastName, $adress);

$document = new DOMDocument;

$document->loadHTMLFile($dir.'temp/OEBPS/signature.html');

$dom = $document->getElementById('body');
for ($i = 0; $i < count($values); $i++) {
$dom->appendChild($document->createElement('p', $values[$i]));
}


$document->saveHTMLFile($dir.'temp/OEBPS/signature.html');
echo 'signature added <br />';

1 个答案:

答案 0 :(得分:1)

请参阅此问题提供的答案:Why doesn't PHP DOM include slash on self closing tags?

简而言之,DOMDocument->saveHTMLFile()将其内部结构输出为常规旧HTML而不是XHTML。如果您绝对需要XHTML,可以使用DOMDocument->saveXMLFile(),它将使用自闭标记。此方法的唯一问题是某些HTML标记无法使用自我结束标记,例如<script><style>,因此您必须在其内容中放置一个空格,以便它们不使用自动关闭标记。

我建议只是忽略这个问题,除非你必须修复它。自闭标签是XHTML的遗物,是unused in HTML5