保留文本区域中的换行符

我使用了一个文本区域来允许用户输入评论。但是,如果用户输入新行,则新行在输出时不会出现。有没有什么办法可以让分界线保持不变。

知道如何保持分割线吗?

132057 次浏览

解决这个问题有两个办法:

  1. PHP 函数 nl2br():

    e.g.,

    echo nl2br("This\r\nis\n\ra\nstring\r");
    
    
    // will output
    This<br />
    is<br />
    a<br />
    string<br />
    
  2. Wrap the input in <pre></pre> tags.

    See: W3C Wiki - HTML/Elements/pre

Got my own answer: Using this function from the data from the textarea solves the problem:

function mynl2br($text) {
return strtr($text, array("\r\n" => '<br />', "\r" => '<br />', "\n" => '<br />'));
}

详情请浏览: http://php.net/nl2br

这是我用的

$textToOutput = nl2br(htmlentities($text, ENT_QUOTES, 'UTF-8'));

$text是需要显示的文本 $textToOutput is the returned text from nl2br and htmlentities so it can be safety displayed in the html context.
ENT_QUOTES将同时转换双引号和单引号,所以您不会遇到这些问题。

为什么制造是如此如此困难的人当它可以如此如此如此容易:)

//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);

你显然需要标题,并可能有更多的字段,但这是你的文本区照顾

i am using this two method steps for preserve same text which is in 文字区 to store in mysql and at a getting time i can also simply displaying plain text.....

第一步:

$status=$_POST['status'];<br/>
$textToStore = nl2br(htmlentities($status, ENT_QUOTES, 'UTF-8'));

在查询中输入 $textToStore... 。

第二步:

为选择查询和直接回显值编写代码。

有用

This works:

function getBreakText($t) {
return strtr($t, array('\\r\\n' => '<br>', '\\r' => '<br>', '\\n' => '<br>'));
}
function breakit($t) {
return nl2br(htmlentities($t, ENT_QUOTES, 'UTF-8'));
}

这个可能对你有帮助

穿过纹理墙