大家以前发过关于<br>
插入文字开头的所有人,我们已经解决了这个问题。 (here is my previous post with the code)我按照
$x = preg_replace("/<br>/i","\n",$x);
到
$x = preg_replace("/^<br(\/|)>/i","\n",$x);
用于阻止<br>
在开头插入,但现在它在最后插入一个。如何阻止这种情况发生?
解
$x = preg_replace("/^<br(\/|)>/i","\n",$x);
杰克斯解决方案--- //$x = preg_replace('#^<br(\/|)>+|<br(\/|)>+$#i', "\n", $x);
除了原来的preg_replace
$x= preg_replace("/(^)?(<br\s*\/?>\s*)+$/","\n", $x);
更新
每次提交时都不再添加<br>
,但现在文本后面只有两个<br>
只出现在数据库中,而不会在编辑器中显示出来。我需要摆脱这些休息!
答案 0 :(得分:1)
应该这样做,在开头或结尾匹配<br>
,<br/>
或<br />
:
preg_replace('#^<br(\s*/)?>|<br(\s*/)?>$#i', "\n", $str);
标签匹配:
*文字<br
*可选空格后跟正斜杠
中间的|
用于表示替代条件(即OR
)。
修改强>
除了<br(\s*/)?>
,您还可以写下之前的<br(\/|)>
。
修改2
只需在每个模式后面添加+
即可匹配多次出现:
preg_replace('#^<br(\/|)>+|<br(\/|)>+$#i', "\n", $str);