如何用换行符回显文本区域的输入?

Posted

技术标签:

【中文标题】如何用换行符回显文本区域的输入?【英文标题】:How to echo an input of an textarea with line breaks? 【发布时间】:2011-09-14 17:46:59 【问题描述】:

我正在使用 textarea 向我的数据库发送文本。

数据库截图:

当我从数据库中读取时,它会删除换行符,我怎样才能将它们保留在 $row['opmerkingen'] 中?

【问题讨论】:

How to remove line breaks (no characters!) from the string?的可能重复 【参考方案1】:

显示文本时,使用nl2br() 将换行符转换为<br/> 标记,即使用<?php echo nl2br($row['text']); ?> 代替<?php echo $row['text']; ?>

默认情况下,浏览器将换行符显示为空格,因此必须将它们转换为<br/> 标签。


对于那些觉得这很有用的人 - 请考虑使用 Emil Vikström 建议的 white-space: pre-line。我不再是网络人,很容易无法验证这一点,但 Boaz 在 cmets 中表示,所有现代浏览器都支持它。如果是这样,那应该优先于使用nl2br()

【讨论】:

正是我想要的【参考方案2】:

nl2br 的替代方法是使用 CSS 属性 white-space:

white-space: pre-line;

【讨论】:

+1 恕我直言nl2br() 替代方案。样式和格式只能由 CSS 处理,现在 all modern browsers support the pre-line value of the white-space property.【参考方案3】:

我输入如下,但不能使用单引号

echo $row['text'].'\n';

加上双引号。然后工作。

<textarea rows="10" cols="62" style="white-space: pre-line;" wrap="hard">
<?php echo $row['text']."\n"; ?>
</textarea>

当我们获取数据时,它带有 \r\n。也可以在此处使用双引号

【讨论】:

以上是关于如何用换行符回显文本区域的输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何在表格中显示文本区域的换行符?

文本区域中的换行符

发送邮件时保留文本区域的换行符

如何用内容改变文本区域的高度?

淘汰文本区域值绑定显示换行符的 ASCII 字符?

无法在 Coach BPM 8.5.7 的输出文本区域中放置换行符