我在表单提交时从admin到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
。那么,根据我的经验,我可以做什么,我不能在这里使用双引号。
答案 0 :(得分:6)
你可以将它们转换为各自的转义序列,然后再将字符串传递给nl2br()
,如下所示:
$description = nl2br(str_replace('\\r\\n', "\r\n", $description));
但是,首先在数据库中执行的文字转义是什么?
答案 1 :(得分:1)
您将\r\n
的文字值存储在数据库中,而不是它们代表的实际字符。
在您的数据库中验证这一点。如果您在说明字段中看到\r\n
,那么当您存储数据时,您可能会转义反斜杠。
答案 2 :(得分:0)
您的文字似乎包含单个字符\
,r
,\
和n
,并且不包含实际的换行符。因此,str_replace()
应该完成工作:
echo str_replace('\r\n', '<br>', $description);
答案 3 :(得分:-2)
nl2br可以为“is_xhtml”提供第二个(可选)参数,它会将\r\n
转换为<br>
。只需将您的行更改为:
echo nl2br($description, TRUE);