保留文本区域中的换行符

Preserve line breaks in textarea

我有一个带有文本区域的表单,我想在输出内容时保留用户输入的换行符。

例如,如果我在 textarea 中写:

Here is a sentence. Here is another. here is one more.

This is a new paragraph. Here is a new sentence. Here is another.

我想要相同的输出 不是 :

Here is a sentence. Here is another. here is one more. This is a new paragraph. Here is a new sentence. Here is another.

如何保留换行符?

用户输入的换行符 保留,html 和 php 都不会删除或更改任何内容。但是 html 标记在为可视化呈现时使用 不同的 代码换行符的方式。这有 非常 充分的理由。所以你要做的就是 "translate" 现有的换行符变成 html 样式的换行符。

如何做到这一点取决于您的工作环境。通常,您必须将 \n 之类的换行符代码转换为 <br> 标记。 php 脚本语言为此提供了一个函数,例如:nl2br()

但是请注意:这仅适用于 将文本呈现 为 html 标记的情况。这确实 适用,例如,当您再次将文本输出到表单内的文本区域以允许更改它时。在这种情况下,您必须保留收到的原始换行符。

所以您通常做的是:将收到的未更改的文本输入保存下来。当再次将该文本输出到客户端时,比如从您之前保存的数据库中读取它之后,您就知道情况,文本将如何呈现。那就是当您翻译或保留现有换行符时。

可以 还可以通过 <pre>...</pre> 标记对包含换行符的未更改文本进行编码,因此将它们标记为按预格式化呈现。例如,在 html 页面中显示源代码时就是这样做的。

一般只需要加上

  • white-space: pre-line; 空格修剪为单个空格

  • white-space: pre-wrap; 保留所有空格

添加到元素的样式 (CSS),您希望在其中使用换行符呈现文本。

您在文本区域中保持输出原样。您将收到作为字符串输出的输入,string(write to file) 该字符串将文本区域添加到输入字符串。

for eg.
<?php
$txt = $_POST["inputstr"];
$txt1 = "<textarea>". $txt ."</textarea>";
$file = fopen("file.html","a+");
fwrite($file, $txt1);
fclose($file);
?>

你可以这样做:

white-space: pre-wrap;
overflow-wrap: break-word;