DOMDocument saveHTML()返回空字符串

时间:2012-10-21 21:54:15

标签: php domdocument

我正在尝试使用PHP DOMDocument类来修改我的页面内容,但它并不是很顺利。

<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadXML($c);
echo $d->saveHTML();
?>

如果我回显$c,则页面正常打印,但如上所述,它根本不打印任何内容。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您应该使用loadHTML()代替loadXML()。使用选项,以防止不需要的标签。

<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadHTML($c, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
echo $d->saveHTML();
?>

the_content()的一个重要区别是get_the_content()未通过&#39; the_content&#39;传递内容。这意味着get_the_content()不会自动嵌入视频或扩展短代码等。

它也不会 autop 。但您可以轻松应用过滤器:

$c = apply_filters('the_content', get_the_content());

关注loadHTML()的选项仅适用于Libxml&gt; = 2.7.7(从PHP&gt; = 5.4.0开始)。