删除字符串开头和结尾的冗余标记<p><br></p>
,中间只删除一个标记。
输入:
<p><br></p><p><br></p><p><br></p><p>gfdsgfdsgfds</p><p><br></p><p><br></p><p><br></p><p>gfdsgfdsgfdsgfds</p><p><br></p><p><br></p><p><br></p>
期望的输出:
<p>gfdsgfdsgfds</p><p><br></p><p>gfdsgfdsgfdsgfds</p>
替代期望的输出:
<p>gfdsgfdsgfds</p><p><br></p><p><br></p><p><br></p><p>gfdsgfdsgfdsgfds</p>
我尝试过使用:preg_replace
$string = preg_replace('/(<p><br></p>)+/', '', $string);
但结果为空。
答案 0 :(得分:1)
您需要在正则表达式中转义斜杠/
字符:
$string = preg_replace('/(<p><br><\/p>)+/', '', $string);
另请注意,此将删除其中多个这些模式的所有实例,从而产生以下结果:
<p>gfdsgfdsgfds</p><p>gfdsgfdsgfdsgfds</p>
要删除重复但留下一个实例,可以执行以下操作:
$string = preg_replace('/(<p><br><\/p>)+/', '<p><br></p>', $string);
答案 1 :(得分:0)
也许净化器http://htmlpurifier.org/可以帮到你。它可以清理html代码,并在需要时删除javascript。