テキストエリアを使用して、ユーザーがコメントを入力できるようにします。ただし、ユーザーが新しい行を入力した場合、出力時に新しい行は表示されません。改行を維持する方法はありますか。
改行をどのように保持するのですか?
このための2つのソリューション:
PHP関数 nl2br()
:
e.g。、
echo nl2br("This\r\nis\n\ra\nstring\r");
// will output
This<br />
is<br />
a<br />
string<br />
入力を<pre></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 />'));
}
私はこの2つの方法ステップを使用して、textareaにある同じテキストを保持してmysqlに保存し、取得時にプレーンテキストを表示することもできます。 ....
ステップ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 walを渡す