我正在解析用户输入文字&使用正则表达式将youtube网址转换为iframe,因此我最终得到以下内容:
<iframe title="YouTube video player" width="640" height="370" src="http://www.youtube.com/embed/*id*" frameborder="0" allowfullscreen></iframe>
然后通过DOMdocument()
解析文本,将上述内容转换为自闭标签:
<iframe class="EmbeddedVideo" title="YouTube video player" width="640" height="370" src="http://www.youtube.com/embed/xP4HhaUMB3I" frameborder="0" allowfullscreen=""/>
在Chrome和&amp ;;歌剧。如果我手动将html更改回:
<iframe class="EmbeddedVideo" title="YouTube video player" width="640" height="370" src="http://www.youtube.com/embed/xP4HhaUMB3I" frameborder="0" allowfullscreen=""></iframe>
它有效。
首先,自闭标签有什么问题(因为我看不到任何东西)?
有没有办法强制domdocument()使用'正确'的结束标记?
答案 0 :(得分:5)
您可以使用LIBXML_NOEMPTYTAG
选项:
$doc->saveXML($node, LIBXML_NOEMPTYTAG);
这会强制将<iframe />
扩展为<iframe></iframe>
但是,您也可以使用saveHTML()
(首选)。这将正确保留HTML标记:
$doc->saveHTML();