2 つの質問があります。
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']);