写入MySQL时,保留从TextArea中断行
我正在使用textarea来使用户能够input评论。 但是,如果用户input新行,输出新行时不显示。 有什么办法可以让这条线保持原状。
任何想法如何保持换行?
两个解决scheme:
-
PHP函数
nl2br()
:例如,
echo nl2br("This\r\nis\n\ra\nstring\r"); // will output This<br /> is<br /> a<br /> string<br />
-
将input包裹在
<pre></pre>
标记中。参见: W3C Wiki – HTML / Elements / pre
这是我使用的
$textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8'));
$inputText
是由表单或textarea提供的文本。 $textToStore
是从nl2br
和htmlentities
返回的文本,存储在数据库中。 ENT_QUOTES
将转换双引号和单引号,所以你不会遇到那些麻烦。
得到了我自己的答案:从textarea的数据中使用这个函数解决了这个问题:
function mynl2br($text) { return strtr($text, array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />')); }
更多这里: http : //php.net/nl2br
我正在使用这两个方法步骤保存相同的文本是在textarea存储在MySQL中,在得到的时间,我也可以简单地显示纯文本…..
步骤1:
$status=$_POST['status'];<br/> $textToStore = nl2br(htmlentities($status, ENT_QUOTES, 'UTF-8'));
在查询中input$textToStore
….
第2步:
为select查询编写代码…以及直接回显值….
有用
这工作:
function getBreakText($t) { return strtr($t, array('\\r\\n' => '<br>', '\\r' => '<br>', '\\n' => '<br>')); }
为什么让这么难的人,当它可以soooo容易:)
//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照顾