PHP的nl2br无法正常工作

时间:2014-11-03 13:58:41

标签: php carriage-return

例如,我有:

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上运行Apache。感谢。

1 个答案:

答案 0 :(得分:4)

要将所有换行符替换为<br />,您应该使用扩展函数,
这是一个例子:

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

每个操作系统都有不同的ASCII字符用于换行:

windows = \ r \ n
unix = \ n
mac = \ r