php文本区post中的换行符未转换为换行符
当我用换行符指定文本并使用nl2br函数时,它会将换行符转换为换行符,但textarea post不会发生同样的情况。我想知道为什么会发生这种情况,以及如何将表单的textareapost中的换行符转换为回音时的换行符。下面是我的代码:php文本区post中的换行符未转换为换行符,php,Php,当我用换行符指定文本并使用nl2br函数时,它会将换行符转换为换行符,但textarea post不会发生同样的情况。我想知道为什么会发生这种情况,以及如何将表单的textareapost中的换行符转换为回音时的换行符。下面是我的代码: <?php if(isset($_POST['comment'])){ $var = "One line.\nAnother line."; echo nl2br($var); echo
<?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'])
清理用户输入,否则用户将能够更改页面
附加信息
是
工具书类
\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
。