写入MySQL时,保留从TextArea中断行

我正在使用textarea来使用户能够input评论。 但是,如果用户input新行,输出新行时不显示。 有什么办法可以让这条线保持原状。

任何想法如何保持换行?

两个解决scheme:

  1. PHP函数nl2br()

    例如,

     echo nl2br("This\r\nis\n\ra\nstring\r"); // will output This<br /> is<br /> a<br /> string<br /> 
  2. 将input包裹在<pre></pre>标记中。

    参见: W3C Wiki – HTML / Elements / pre

这是我使用的

 $textToStore = nl2br(htmlentities($inputText, ENT_QUOTES, 'UTF-8')); 

$inputText是由表单或textarea提供的文本。 $textToStore是从nl2brhtmlentities返回的文本,存储在数据库中。 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照顾