开发者

DOMDocument escaping end chars in PHP

I have a problem with class DOMDocument. I use this php class to edit a html template. I have in this temp开发者_开发百科late this meta tag:

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

But after editing, although I was not editing this tag, it escapes the end char "/" and it doesn't work. This is the script:

$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 />';


Please see the answer provided by this question: Why doesn't PHP DOM include slash on self closing tags?

In short, DOMDocument->saveHTMLFile() outputs its internal structure as regular old HTML instead of XHTML. If you absolutely need XHTML, you can use DOMDocument->saveXMLFile() which will use self-closing tags. The only problem with this method is some HTML tags cannot use self-closing tags like <script> and <style> so you have to put a space in their content so that they don't use self-closing tags.

I would recommend just ignoring the issue unless it is mandatory that you fix it. Self-closing tags are a relic of XHTML and are unused in HTML5.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜