我有一个带有textarea的表单,我希望在输出内容时保留用户输入的换行符。
例如,如果我在textarea中写道:
这是一个句子。这是另一个。还有一个。
这是一个新段落。这是一个新句子。这是另一个。
我想要相同的输出和不:
这是一个句子。这是另一个。还有一个。这是一个新的 段。这是一个新句子。这是另一个。
我怎样才能保留换行符?
答案 0 :(得分:87)
通常你只需要添加
white-space: pre-line;
将空白修剪为单个空格或
white-space: pre-wrap;
保留所有空格
到元素的样式(CSS),您希望使用换行符呈现文本。
答案 1 :(得分:6)
用户输入 保留的换行符,html和php都不会丢弃或改变任何内容。但是,html标记在呈现为可视化时使用不同的方式来编码换行符。 非常有很好的理由。所以你需要做的是"翻译"现有的行分为html样式换行符。
如何做到这一点取决于您正在使用的环境。通常,您必须将换行符代码(例如\n
)转换为<br>
代码。 php
脚本语言为此提供了一个函数,例如:nl2br()
但请注意:这仅适用于将文本呈现为html标记的情况。当您再次将文本输出到表单内的文本区域以允许更改它时,这将不应用。在这种情况下,您必须保持原始换行符。
所以你通常做的是:你保存未收到的文本输入。当再次将该文本输出到客户端时,比如从之前已保存它的数据库中读取该文本后,您就会知道情况,文本将如何呈现。那就是你翻译或保留现有的换行符。
您 还可以对包含<pre>...</pre>
标记的换行符的未更改文本进行编码,因此请将其标记为预先格式化。例如,这是在html页面中显示源代码时完成的。
答案 2 :(得分:1)
您可以这样做:
white-space: pre-wrap;
overflow-wrap: break-word;
答案 3 :(得分:0)
您将输出原样保留在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);
?>
答案 4 :(得分:-1)
如果希望保留回车符,请将Java字符串中的字符返回到文件中。只需按照以下语句替换每个换行符(在Java中被识别为\ n)即可: tempQuery = tempQuery.replaceAll(“ \ n”,“ \ r \ n”);
这是一个代码示例,
// Action Listener
orderButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
// When Execute button is pressed
String tempQuery = textArea.getText();
tempQuery = tempQuery.replaceAll("\n", "\r\n");
try (PrintStream out = new PrintStream(new FileOutputStream("C:/Temp/tempQuery.html"))) {
out.print(tempQuery);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(tempQuery);
}
});