从 TinyMCE 中删除 "blank" 个段落标签
Removing "blank" paragraph tags from TinyMCE
这与 2012 年在这里提出的问题相同,但没有得到回答:
Using regex to remove empty paragraph tags <p> </p> (standard str_replace on "space" not working)
当我在 TINYMCE 中按回车键时,它似乎输入了这样的空段落标签:
<p> </p>
我想在将数据保存到 MySQL table.
之前删除它们
所以我尝试了一个简单的修复:
$post_content = str_replace('<p> </p>', '', $content_from_mce);
还有:
$post_content = str_replace('<p> </p>', '', $content_from_mce);
但是,它们不起作用(例如,不替换明显空的段落标签)。
如果我这样做:
$foo = utf8_encode($post_content);
然后检查$foo:它显示为:
<p>Â </p>
所以它确实不是一个空的段落标记,但我不知道如何删除这些文本块。
我也尝试过这些版本(不是同时进行 - 我的意思是在不同的运行中...)
$post_content = str_replace('<p>Â </p>','',$post_content);
$post_content = preg_replace('~<p>\s*<\/p>~i','',$post_content);
$post_content = preg_replace('#<p> </p>#i','<p></p>', $post_content);
$post_content=str_replace("/<p> <\/p>/","",$post_content);
但其中 none 有效。
我明白了 - 我正在使用 HTMLPurifier 来确保从 TinyMCE 发布的内容没问题。
在 $post_content 通过 HTMLPurifier 之后,它在段落标签之间包含了那个有趣的字符。
因此,如果我在将 $post_content 通过 HTMLPurifier 之前进行替换,它就可以正常工作:
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
// get contents of "post_content" field
$post_content = $_POST['post_content'];
// remove blank paragraph lines
$post_content = str_replace('<p> </p>','',$post_content);
// now put $post_content through HTMLPurifier
$post_content = $purifier->purify($post_content);
这与 2012 年在这里提出的问题相同,但没有得到回答:
Using regex to remove empty paragraph tags <p> </p> (standard str_replace on "space" not working)
当我在 TINYMCE 中按回车键时,它似乎输入了这样的空段落标签:
<p> </p>
我想在将数据保存到 MySQL table.
之前删除它们所以我尝试了一个简单的修复:
$post_content = str_replace('<p> </p>', '', $content_from_mce);
还有:
$post_content = str_replace('<p> </p>', '', $content_from_mce);
但是,它们不起作用(例如,不替换明显空的段落标签)。
如果我这样做:
$foo = utf8_encode($post_content);
然后检查$foo:它显示为:
<p>Â </p>
所以它确实不是一个空的段落标记,但我不知道如何删除这些文本块。
我也尝试过这些版本(不是同时进行 - 我的意思是在不同的运行中...)
$post_content = str_replace('<p>Â </p>','',$post_content);
$post_content = preg_replace('~<p>\s*<\/p>~i','',$post_content);
$post_content = preg_replace('#<p> </p>#i','<p></p>', $post_content);
$post_content=str_replace("/<p> <\/p>/","",$post_content);
但其中 none 有效。
我明白了 - 我正在使用 HTMLPurifier 来确保从 TinyMCE 发布的内容没问题。
在 $post_content 通过 HTMLPurifier 之后,它在段落标签之间包含了那个有趣的字符。
因此,如果我在将 $post_content 通过 HTMLPurifier 之前进行替换,它就可以正常工作:
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
// get contents of "post_content" field
$post_content = $_POST['post_content'];
// remove blank paragraph lines
$post_content = str_replace('<p> </p>','',$post_content);
// now put $post_content through HTMLPurifier
$post_content = $purifier->purify($post_content);