【发布时间】:2015-08-16 01:40:33
【问题描述】:
我有一个带有文本区域的表单,我想在输出内容时保留用户输入的换行符。
例如,如果我在 textarea 中写:
这是一个句子。这是另一个。这里还有一个。
这是一个新段落。这是一个新句子。这是另一个。
我想要相同的输出,而 不是:
这是一个句子。这是另一个。这里还有一个。这是一个新的 段落。这是一个新句子。这是另一个。
如何保留换行符?
【问题讨论】:
标签: html css textarea line-breaks
我有一个带有文本区域的表单,我想在输出内容时保留用户输入的换行符。
例如,如果我在 textarea 中写:
这是一个句子。这是另一个。这里还有一个。
这是一个新段落。这是一个新句子。这是另一个。
我想要相同的输出,而 不是:
这是一个句子。这是另一个。这里还有一个。这是一个新的 段落。这是一个新句子。这是另一个。
如何保留换行符?
【问题讨论】:
标签: html css textarea line-breaks
用户输入的换行符保留,html和php都不会简单地删除或更改任何内容。然而,html 标记在为可视化呈现时使用 不同 方式来编码换行符。这有非常充分的理由。所以你要做的就是将现有的换行符“翻译”成html样式的换行符。
如何做到这一点取决于您工作的环境。通常,您必须将\n 之类的换行代码转换为<br> 标签。 php 脚本语言为此提供了一个功能,例如:nl2br()
但请注意:这仅适用于将文本呈现为 html 标记的情况。这不适用,当您再次将文本输出到表单内的文本区域以允许更改它时。在这种情况下,您必须保留收到的原始换行符。
因此,您通常会做的是:将未更改的文本输入保存为收到的内容。当再次将该文本输出到客户端时,例如从您之前保存它的数据库中读取它之后,您就会知道情况,文本将如何呈现。那是您翻译或保留现有换行符的时候。
您可以还通过<pre>...</pre>标签对包含换行符的未更改文本进行编码,因此将它们标记为呈现为预格式化。例如,在 html 页面中显示源代码时会这样做。
【讨论】:
一般你只需要添加
white-space: pre-line; 空白被修剪为单个空白或
white-space: pre-wrap; 保留所有空格
到元素的样式 (CSS),您希望在其中使用换行符呈现文本。
【讨论】:
white-space: pre。
您将输出保持在 textarea 中。您将收到作为字符串输出的输入,string(write to file) 该字符串将 textarea 添加到输入字符串。
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;
【讨论】: