限制br的nl2br量连续显示?

时间:2011-05-14 10:06:20

标签: php parsing nl2br

我正在编写一个“bb解析器”的问题。或者,好吧,不是解析器本身,而是修改它的nl2br。

数据库中的字符串如下所示:

文字文字

[code]代码[/ code]

文字文字

现在,nl2br在第一个“文本文本文本”后面放一个br /,然后在另一个下面放置另一个,所以在[code]标记之前有两个换行符(实际上是正确的,但不是我想要的)。

有什么方法可以限制连续输入的br数量?我似乎无法找到一个足够简单的解决方案。

先谢谢你们。

3 个答案:

答案 0 :(得分:4)

除了之前的解决方案,我添加了另一个,因为Fredrik要求它。这将在nl2br之后而不是之前替换双<br>

$string = nl2br( $string );
$string = preg_replace( '/(<br(?: \\/)?>\\r?\\n?\\r?)(?=\\1)/is', '', $string );

答案 1 :(得分:0)

例如,您可以使用preg_replace将两个换行符(或更多行)替换为: - )

答案 2 :(得分:0)

您可以使用

$string = str_replace(array("\r\n\r\n", "\n\r\n\r", "\n\n", "\r\r"), array("\r\n","\n\r","\n","\r"), $string);

这可以防止双重&lt; br&gt;标签。如果一行中有两个以上的新行,那么之前建议的Preg_replace会更好。