PHP表单在每次提交到MSSQL的文本末尾插入<br/>

时间:2012-10-01 16:57:55

标签: php sql-server

大家以前发过关于<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>只出现在数据库中,而不会在编辑器中显示出来。我需要摆脱这些休息!

1 个答案:

答案 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);