2014-11-03 54 views
1

例如,我有:PHP的nl2br工作不正常

Lorem Ipsum 

Dolor Sir Amet 

由於$s內容。現在,如果我打印的htmlspecialchars(nl2br($s))結果是:

Lorem Ipsum<br /> 
<br /> 
Dolor Sir Amet 

雖然結果我想要的是:

Lorem Ipsum<br /><br /> Dolor Sir Amet 

爲什麼nl2br不刪除回車,即使它已經插入<br />?或者如何正確使用nl2br來正確刪除回車符?因爲這打破了我的SQL。我在Windows 7上運行PHP上的Apache。謝謝。

+0

nl2br ___does___除去換行符(儘管它不一定會替換一個返回字符) – 2014-11-03 14:01:57

+0

你的'htmlspecialchars'函數有一個缺失's'的字符。 – vaso123 2014-11-03 14:04:27

+0

@MarkBaker是的,它應該是這樣的。但那是我得到的結果。我不知道爲什麼。 – 2014-11-04 07:24:06

回答

4

全部更換換行到<br />你應該使用擴展功能,
這裏有一個例子:

<?php 
function nl2br2($string) { 
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string); 
return $string; 
} 

每個OS有斷行不同的ASCII字符:

窗口= \ r \ n
UNIX = \ n
MAC = \ r

+0

哦好吧,讓我試試看。 :) – 2014-11-04 07:22:35