PHP DOMDocument没有DTD,head和body标签


PHP DOMDocument without the DTD, head, and body tags?

是否可以使用 DOMDocument 类而不允许它添加文档类型声明、head 和 body 标签?我正在为服务器端包含编写我当前的代码,并且它正在呈现在已经格式良好的页面上。我不需要额外的标签。

>@Wrikken说了什么,或者,对于 PHP <5.3.6,只需使用正则表达式:

$html = preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>'s*~i', '', $dom->saveHTML());

从 PHP 5.3.6 开始,您可以在 echo $DOMDocument->saveHTML($the_node_you_want_to_show) 中使用节点,在此之前,我已经滥用了->saveXML()一些小修复。但是,您必须有 1 个周围的包含节点(例如输出是 <div>...somecontent and nodex....</div> 的,或者如果您不想有 1 个周围的标签,则必须循环遍历节点子节点;

$html = '';
foreach($rootnode->childNodes as $node){
    $html .= $rootnode->ownerdocument->saveHTML($node);
}