我有一些“不干净”的 html 字符串需要清理。
我想用 2 个 html 换行符替换连续的“超过 2 个”html 换行符。
所以下面的字符串:
$string = 'ytefey soeije hesouhodeseojedowe<br><br>
<br>ioueshe oiwj<br /><br />oijeewje<br /><br> <br> <br>';
最终应该是这样的:
$string = 'ytefey soeije hesouhodeseojedowe<br><br>
ioueshe oiwj<br /><br />oijeewje<br><br> ';
到目前为止我得到了这个:
$string = preg_replace('#(<br>|<br />){2,}#i', '<br><br>', $string);
但它不考虑换行符和空格。
最佳答案
您可以使用 preg_replace()
用一个简单的正则表达式:
/(<br>\s*|<br \/>\s*){3,}/i
基本上它要么匹配 <br>
或 <br />
( (<br>|<br \/>)
) 前面有零个或多个空格 ( \s*
) 至少 3 次或更多次 ( {3,}
)。
$string = preg_replace("/(<br>\s*|<br \/>\s*){3,}/i", "<br><br>", $string);
关于PHP:删除过多的 <br> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503075/