[php] MySQL에 쓸 때 TextArea에서 줄 바꿈 유지

사용자가 주석을 입력 할 수 있도록 텍스트 영역을 사용하고 있습니다. 그러나 사용자가 새 줄을 입력하면 새 줄이 출력 될 때 나타나지 않습니다. 줄 바꿈을 유지하는 방법이 있습니까?

줄 바꿈을 어떻게 보존합니까?



답변

이를위한 두 가지 솔루션 :

  1. PHP 기능 nl2br():

    예 :

    echo nl2br("This\r\nis\n\ra\nstring\r");
    
    // will output
    This<br />
    is<br />
    a<br />
    string<br />
  2. 입력을 <pre></pre>태그로 묶습니다 .

    참조 : W3C Wiki-HTML / Elements / pre


답변

내가 사용하는 것은 다음과 같습니다.

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

$inputText양식 또는 텍스트 영역에서 제공하는 텍스트입니다.
$textToStore에서 반환 된 텍스트 nl2br이며 htmlentities데이터베이스에 저장됩니다.
ENT_QUOTES큰 따옴표와 작은 따옴표를 모두 변환하므로 문제가 없습니다.


답변

내 대답 : 텍스트 영역의 데이터에서이 함수를 사용하면 문제가 해결됩니다.

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

더 여기 : http://php.net/nl2br


답변

나는 mysql에 저장하기 위해 textarea 에 있는 동일한 텍스트를 보존하기 위해이 두 가지 방법 단계를 사용 하고 있으며 시간이 지남에 따라 단순히 일반 텍스트를 표시 할 수도 있습니다 …..

1 단계:

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

쿼리에서 $textToStore…를 입력하십시오 .

2 단계:

선택 쿼리에 대한 코드 작성 … 및 직접 에코 값 ….

효과가있다


답변

이것은 작동합니다 :

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'));
}

이것은 당신을 도울 수 있습니다

textarea 월마트를 통과


답변

그것이 soooo 쉬울 수 있는데 왜 make는 sooooo 어려운 사람들입니다 🙂

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

분명히 헤더가 필요하고 필드가 더 많을 가능성이 있지만 이것은 텍스트 영역입니다.