php文本区post中的换行符未转换为换行符

php文本区post中的换行符未转换为换行符,php,Php,当我用换行符指定文本并使用nl2br函数时,它会将换行符转换为换行符,但textarea post不会发生同样的情况。我想知道为什么会发生这种情况,以及如何将表单的textareapost中的换行符转换为回音时的换行符。下面是我的代码: <?php if(isset($_POST['comment'])){ $var = "One line.\nAnother line."; echo nl2br($var); echo

当我用换行符指定文本并使用nl2br函数时,它会将换行符转换为换行符,但textarea post不会发生同样的情况。我想知道为什么会发生这种情况,以及如何将表单的textareapost中的换行符转换为回音时的换行符。下面是我的代码:

<?php

if(isset($_POST['comment'])){
        $var = "One line.\nAnother line.";
        echo nl2br($var);
        echo nl2br($_POST['comment']);
        // One line.\nAnother line.
}

?>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="">
  <label for="lname">Commment</label><br>
  <textarea name="comment" rows="5" cols="40">One line.\nAnother line.</textarea><br><br>
  <input type="submit" value="Submit">
</form> 
</body>
</html>

命令
一行。\n另一行。


您需要在
中使用实际的换行符<代码>\n在那里不起作用

nl2br
将换行符转换为html

使用php代码,您可以添加如下换行符:

<textarea name="comment" rows="5" cols="40">One line.<?= "\n" ?>Another line.</textarea>
一行,另一行。
或者你可以写:

<textarea name="comment" rows="5" cols="40">One line.
Another line.</textarea>
一行。
另一行。
如果要重用提交的值:

<textarea name="comment" rows="5" cols="40"><?= htmlentities($_POST['comment']) ?></textarea>

这里要小心,您希望使用
htmlentities($\u POST['comment'])
清理用户输入,否则用户将能够更改页面

附加信息

工具书类

要在文本区域中获得新行,您需要按键盘上的Enter键,而不是按字面输入
\n
。textarea不是代码编辑器或编程语言。基本上,我希望在文本中输入“一行。\n另一行”这样的字符串,然后通过邮件发送。但在邮件中,它应该以两行显示。@“Alvaro González”你的意思是说没有办法将这样的字符串“一行。\n另一行”作为输入,并将其打印为两行。我不是这么说的。我的意思是像
\n
这样的反斜杠实体在HTML中不存在。如果在网站的文本区域中键入
\n
,则不会得到换行符,因为HTML不是这样工作的。但是您的PHP代码可以接受任何字符串,并将其转换为您认为合适的任何字符串。您甚至可以将
:rabbit:
转换为
,基本上我想要像这样的字符串,文本中的输入是“一行。\n另一行。”。然后通过邮件发送。但是在邮件中,它应该显示在两行不同的内容中。然后使用
str\u replace('\n',“\n',$text)
来替换文本邮件<代码>str_replace('\n','
',$text)
用于html邮件。请注意单引号,它们不用于将
\n
转换为换行符,因此您可以搜索并替换
\n