PHP:删除过多的<br>标签

Kri*_*eth 2 php regex

我得到一些"不洁"的html字符串,我需要清理.

我想用2个html换行符连续替换"2个以上"的html换行符.

所以以下字符串:

$string = 'ytefey soeije hesouhodeseojedowe<br><br>
 <br>ioueshe oiwj<br /><br />oijeewje<br /><br> <br>  <br>';
Run Code Online (Sandbox Code Playgroud)

应该结束这样的事情:

$string = 'ytefey soeije hesouhodeseojedowe<br><br>
ioueshe oiwj<br /><br />oijeewje<br><br>   ';
Run Code Online (Sandbox Code Playgroud)

到目前为止我得到了这个:

$string = preg_replace('#(<br>|<br />){2,}#i', '<br><br>', $string);
Run Code Online (Sandbox Code Playgroud)

但它并没有考虑到线路和空间.

Riz*_*123 7

您可以使用preg_replace()简单的正则表达式:

/(<br>\s*|<br \/>\s*){3,}/i
Run Code Online (Sandbox Code Playgroud)

基本上它匹配<br><br />((<br>|<br \/>))与它们前面的零个或多个空格(\s*)至少3次或更多次({3,}).

$string = preg_replace("/(<br>\s*|<br \/>\s*){3,}/i", "<br><br>", $string);
Run Code Online (Sandbox Code Playgroud)