文本区域中的换行符

2022-08-30 11:56:06

我知道在保存文本区域时,您可以使用nl2br()或str_replace将/n更改为br标签等。但是,我不确定如何将换行符插入文本区域。我似乎找不到太多关于将数据放回带有这些换行符的文本区域的信息。

例如,我有一个表单,用户可以在其中更新字段。因此,用户可以输入:

foo
bar
baz

当它被保存到数据库中时,它将被保存为:

foo<br />bar<br />baz<br />

现在,当该用户在页面刷新后返回到该表单时,通过从数据库中获取数据,所有字段都会自动填充其以前的数据。

但是,文本区域将 br 标记显示为文本,而不是添加换行符。我还尝试将br标签更改为/ n,希望文本区域会将这些解释为换行符,但没有喜悦。除此之外,我还尝试了逃跑等。

所以我的问题是这可以做到吗?或者更重要的是,可以使用HTML / PHP(im使用smarty)来完成。如果这是不可能的,可以使用javascript来完成吗?

如能提供例子,将不胜感激。

感谢您的阅读


答案 1

将其保存到数据库时不要这样做。在 HTML 中显示文本时执行此操作。我强烈建议不要在数据库中存储任何HTML格式(除非您也使用丰富的HTML编辑器,在这种情况下,不这样做是愚蠢的)。nl2brnl2br

换行符将只是文本区域中的换行符。\n


答案 2

您可以使用 将标签替换为行尾字符。str_replace<br />

str_replace('<br />', PHP_EOL, $textarea);

或者,您可以将数据保存在数据库中,而无需先调用。这样,换行符将保持不变。显示为 HTML 时,请调用 。此方法的另一个好处是,它将在数据库中需要较少的存储空间,因为换行符为 1 个字符,而 “” 为 6 个字符。nl2brnl2br<br />


推荐