NL2BR 不适用于数据库中的文本


nl2br doesn't work with text from the database

我试试这个:

echo nl2br($row['content']);

但我得到的是:

大家好' 祝你好运!

为什么它不转换'n? 数据库以 UTF-8 形式存储数据。

此外,我用测试字符串检查它,发现如果字符串带有双引号,它也不起作用。我的意思是:

echo nl2br("Hello everybody'n Good luck");

它应该可以工作,但如果你愿意,你可以尝试str_replace("'n","<br />")而不是nl2br。

问题是文本在数据库中使用额外的斜杠存储。在nl2br之前对文本使用 stripslashes (PHP 文档在这里) (PHP 文档在这里

$myText = "Hello''nWorld"; //text from a database (with line breaks escaped)
stripslashes(nl2br($myText));
print $myText;
// Result: Hello<br>World

我猜你已经写了两个字符到数据库'n,所以它不是一个"换行符"字符。

试试echo str_replace(''n','<br />', $row['content'])