双线换行'pre'标签和'nl2br'

时间:2012-06-30 14:47:57

标签: php regex line-breaks pre nl2br

我对nl2br标记使用了pre函数,但我遇到了一个奇怪的问题:有2个换行符,但只有一个<br />标记。

例如:

code in line 1<br />
code in line 2<br />

显示为:

code in line 1

code in line 2

而不是:

code in line 1
code in line 2

4 个答案:

答案 0 :(得分:2)

<pre>标记中包装文本会强制它显示为已写入:包括空格,制表符和新行。 因此,回车将创建一个新行,<br />将创建第二个新行。

答案 1 :(得分:0)

preg_replace ("/\n+/", "", $pre)甚至更好preg_replace ("/[\n\r]+/", "", $pre)

答案 2 :(得分:0)

当你在预编组中写入时,你不需要应用nl2br()。

答案 3 :(得分:0)

我遇到了同样的问题。正确的答案要简单得多。不要使用nl2br和pre。

nl2br将<br />添加到html的文本中,但pre标签已保留文本格式。 这意味着什么。 <pre> =预先格式化。

是的,这样的事情会起作用,直到它没有。

<pre>
    preg_replace ("/[\n\r]+/", "",nl2br(file_get_contents("/crashbody.txt")))
</pre>

但那太傻了。您正在添加换行符并将其删除。要保留您的空白和换行符,请<pre>完成它的工作。

<pre>
    file_get_contents("/crashbody.txt")
</pre>

或者更好的是:

<div style = "white-space: pre; text-align:left;">
    file_get_contents("/crashbody.txt")
</div>