3

我在提交表单时通过 textarea 从管理员检索存储在数据库中的产品描述值。当我从数据库中选择描述时$description = $row['description'];,我想在主页上回显 $description,如下所示:echo nl2br($description);但我看到"\r\n"的是字符而不是创建新行。从我在这里和网上找到的内容来看,您的字符串必须在双引号之间使用,如下所示:

echo nl2br("Hello, \r\n This is the description");

现在,$description来自数据库的值实际上是,"Hello, \r\n This is the description"但在我的脚本中,我必须像这样使用它:

echo nl2br($description);

哪个不生成 br,而是输出\r\n。那么,根据我的经验,我能做什么,我不能在这里使用双引号。

4

4 回答 4

6

在将字符串传递给 之前,您可以将它们翻译成各自的转义序列nl2br(),如下所示:

$description = nl2br(str_replace('\\r\\n', "\r\n", $description));

但是首先在您的数据库中进行文字转义是什么?

于 2011-03-07T23:35:20.250 回答
1

您将 的字面值存储\r\n在数据库中,而不是它们所代表的实际字符。

在您的数据库中验证这一点。如果您\r\n在描述字段中看到,那么您可能在存储数据时转义了反斜杠。

于 2011-03-07T23:34:58.217 回答
0

看起来您的文本包含单个字符\r\n, 并且不包含实际的换行符。因此,str_replace()应该完成工作:

echo str_replace('\r\n', '<br>', $description);
于 2011-03-07T23:35:13.113 回答
-2

nl2br 可以为“is_xhtml”采用第二个(可选)参数,它将为您转换\r\n为 a <br>。只需将您的行更改为:

echo nl2br($description, TRUE);
于 2011-03-07T23:36:43.563 回答