我正在使用textarea来启用用户输入评论。但是,如果用户输入新行,则在输出新行时不会显示新行。有没有办法让换行保持不变。
知道如何保留换行符吗?
答案 0 :(得分:147)
两种解决方案:
PHP函数nl2br()
:
<强>如,强>
echo nl2br("This\r\nis\n\ra\nstring\r");
// will output
This<br />
is<br />
a<br />
string<br />
将输入包裹在<pre></pre>
标记中。
答案 1 :(得分:35)
这是我使用的
$textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8'));
$inputText
是表单或textarea提供的文本。
$textToStore
是来自nl2br
和htmlentities
的返回文本,存储在您的数据库中。
ENT_QUOTES
会转换双引号和单引号,因此您可以毫不费力地使用它们。
答案 2 :(得分:3)
得到了我自己的答案:从textarea的数据中使用此函数解决了问题:
function mynl2br($text) {
return strtr($text, array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />'));
}
更多信息:http://php.net/nl2br
答案 3 :(得分:2)
我正在使用这两个方法步骤来保存 textarea 中的相同文本以存储在mysql中 在一段时间我也可以简单地显示纯文本.....
第1步:
$status=$_POST['status'];<br/>
$textToStore = nl2br(htmlentities($status, ENT_QUOTES, 'UTF-8'));
在查询中输入$textToStore
....
第2步:
为select query ...和直接回显值编写代码....
它有效
答案 4 :(得分:1)
这有效:
function getBreakText($t) {
return strtr($t, array('\\r\\n' => '<br>', '\\r' => '<br>', '\\n' => '<br>'));
}
答案 5 :(得分:0)
function breakit($t) {
return nl2br(htmlentities($t, ENT_QUOTES, 'UTF-8'));
}
这可能对您有帮助
通过沃尔玛地区
答案 6 :(得分:-7)
为什么制作太酷的人才会变得如此简单:)
//here is the pull from the form
$your_form_text = $_POST['your_form_text'];
//line 1 fixes the line breaks - line 2 the slashes
$your_form_text = nl2br($your_form_text);
$your_form_text = stripslashes($your_form_text);
//email away
$message = "Comments: $your_form_text";
mail("destination_email@whatever.com", "Website Form Submission", $message, $headers);
你显然需要标题,可能还有更多字段,但这是你的textarea照顾