2011-09-22 83 views
0

我有类DOMDocument的问题。我使用这个php类来编辑一个html模板。我在这个模板此meta标签:DOMDocument在PHP中转义结束字符

<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

问题是,当我通过loadHTMLFile方法加载HTML模板,并通过saveHTMLFile方法保存时,所以虽然我没有编辑元标记,但是这个标记仍然没有结束char /。我用它编辑ePub格式,当这个结尾字符在这里丢失时,它不工作。 对不起我的英文:)。 –

回答

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