使用正则表达式删除空的段落标记<p> </ p>("空间"上的标准str_replace不起作用)

Cha*_*had 1 php regex tinymce

当您按两次输入时,TinyMCE会创建空段落标记.喜欢:

<p> </p>
Run Code Online (Sandbox Code Playgroud)

这是 <p>SPACE</p>

在FireBug中,它调用此空间,"&nbsp;"但html代码/数据库后端只显示一个空格.当我这样做时,"str_replace('<p> </p>'....."它找不到块...基本上我认为"空间"在某种程度上不是标准空间和某种带有编码的空间.有没有我可以运行的正则表达式将删除此标记?我已经被困在这几个小时......甚至是类似的东西

regex('<p>LESS THAN THREE CHARS</p>'...)

可能会奏效

谢谢

inh*_*han 6

我会用:

$str = preg_replace('~<p>\s*<\/p>~i','',$str);
Run Code Online (Sandbox Code Playgroud)

其中\s表示任何类型的空白区域(制表符,空格等),并*指示此(空格)出现0或更多.因此<p></p>,<p> </p>,<p>{multiple spaces here}</p>都将被替换成空字符串.额外的i标志是不区分大小写,以防万一<p>的可能反而是<P>的.