【发布时间】:2012-11-16 02:28:40
【问题描述】:
我有两个问题:
我正在使用 TinyMCE 编辑器,我想从 HTML 中删除空标签。当我从 TinyMCE 编辑器传递文本时,我收到错误“DOMDocument::loadHTML(): Unexpected end tag : p”,当我直接将文本传递给 TinyMCE 时,这个错误消失了!请看下面的代码。
当传递不正确的 HTML 时,如何防止来自 DomDocument 的警告?
<strong>Bold Item </b></strong>?
这是一个示例文本
<p style="text-align: justify;"> </p>
<p>blah blah blah <strong></strong>.</p>
<p style="text-align: justify;"> </p>
<p>paragraph three!!.</p>
我的功能
function remove_empty_tags ($text) {
$dom = new DOMDocument;
$dom->loadHTML($text);
// fetch all the wanted nodes
$xp = new DOMXPath($dom);
foreach($xp->query('//*[not(node() or self::br) or normalize-space() = ""]') as $node) {
$node->parentNode->removeChild($node);
}
// output the cleaned markup
return $dom->saveXml($dom->getElementsByTagName('body')->item(0) );
}
echo remove_empty_tags($_POST['mce_editor']);
【问题讨论】:
标签: php domdocument