php domdocument创建断开html的自动关闭标记

php domdocument创建断开html的自动关闭标记,php,domdocument,Php,Domdocument,我正在解析用户输入文本&使用正则表达式将youtube URL转换为iframe,因此我最终得到以下结果: <iframe title="YouTube video player" width="640" height="370" src="http://www.youtube.com/embed/*id*" frameborder="0" allowfullscreen></iframe> 这打破了Chrome&Opera的页面。如果我手动将html更改回: <

我正在解析用户输入文本&使用正则表达式将youtube URL转换为iframe,因此我最终得到以下结果:

<iframe title="YouTube video player" width="640" height="370" src="http://www.youtube.com/embed/*id*" frameborder="0" allowfullscreen></iframe>
这打破了Chrome&Opera的页面。如果我手动将html更改回:

<iframe class="EmbeddedVideo" title="YouTube video player" width="640" height="370" src="http://www.youtube.com/embed/xP4HhaUMB3I" frameborder="0" allowfullscreen=""></iframe>

它起作用了

首先,自动关闭标签有什么问题吗(因为我什么都看不见)

有没有办法强制domdocument()使用“正确的”结束标记?

您可以使用以下选项:

这将强制将
扩展到

但是,您也可以使用
saveHTML()
(这是首选)。这将正确保留HTML标记:

$doc->saveHTML();

这会打断标签,比如

它真的会
打断它们吗?我假设


是有效的。不是吗?据我所见,浏览器将其解释为两个换行符:(@JamesHalsall我需要再次进入本文。问题是关于一个包含
节点的HTML片段(不是关于整个页面)。如果要保存整个HTML文档,请使用
saveHTML()
相反。它将正确保留标记并生成有效的HTML。(也可以在此处使用,并将其添加)
$doc->saveXML($node, LIBXML_NOEMPTYTAG);
$doc->saveHTML();