带有换行符的文本区域中的数据到数据库

Posted

技术标签:

【中文标题】带有换行符的文本区域中的数据到数据库【英文标题】:Data from textarea with line breaks to database 【发布时间】:2016-04-05 12:53:14 【问题描述】:

我有一个简单的文本区域。单击保存按钮后,我使用角度控制器保存该数据。然后,一旦单击更新按钮,我就会更新该数据库中的一行,其中一个行字段是来自该 textarea 的数据。

到目前为止一切顺利,更新完成,当我在文本区域中换行时问题就开始了,例如,我输入:

“嗨,↵这是另一行”

我检查了该数据,当我将其保存在控制器中时,当我从服务器取回它时,它看起来像这样:“嗨,↵这是另一行”。

看起来不错,但是当我将它放在 div 中时,我得到以下信息:

“嗨,这是另一行”

换行符去哪儿了?为什么不显示?

我尝试了很多事情,比如将换行符更改为<br>,一旦发送到数据库,然后将其切换回换行符,似乎没有任何效果。

【问题讨论】:

html 的呈现方式默认情况下所有空格都替换为一个空格,除了 pre 标签和 textarea 内部。 【参考方案1】:

好的 - 您需要做的是使用 white-space:pre-wrap; 来显示数据库中的数据。

例子:

<?php
echo '<p style="white-space:pre-wrap;">'.$yourVarWithWhiteSpace.'</p>';
?>

【讨论】:

【参考方案2】:

只需使用这个

<?php
echo '<p>'. nl2br($yourVarWithWhiteSpace).'</p>';
?>

【讨论】:

【参考方案3】:

您可以在进出时以编程方式更改以&lt;br /&gt; 标记结尾的\n 行。通过使用准备好的语句,可以为您处理使用诸如 real_escape_string 之类的需求。

也就是说,从长远来看,使用@itamar 的方法可能会更好。

【讨论】:

以上是关于带有换行符的文本区域中的数据到数据库的主要内容,如果未能解决你的问题,请参考以下文章

Firestore 不保存文本区域中的换行符

如何阻止 Chrome 在我的文本区域中添加额外的换行符?

将文本附加到带有换行符的文本区域

在一页上的文本区域中写入,在另一页中显示文本数据[关闭]

文本区域中的换行符[重复]

修改 HTML 的文本区域 - 呈现换行符