テキストエリアで改行(改行、改行)文字をキャプチャする
-
08-07-2019 - |
質問
<textarea>
のあるフォームがあり、サーバー側のそのテキスト領域で改行をキャプチャし、<br/>
に置き換えます。
それは可能ですか?
white-space:pre
のCSSにtextarea
を設定しようとしましたが、まだ十分ではありません。
解決
nl2br()
関数をご覧ください。必要なことを正確に行う必要があります。
他のヒント
これを正確に行うための nl2br()
関数が存在します:
ただし、この関数はbrタグを追加しますが、実際には新しい行を削除しません-これは通常問題ではありませんが、それらを完全に削除してキャリッジリターンもキャッチしたい場合は、 str_replace
または preg_replace
str_replaceは少し高速になると思いますが、ベンチマークは行っていません;
$val = str_replace( array("\n","\r","\r\n"), '<br />', $val );
または
$val = preg_replace( "#\n|\r|\r\n#", '<br />', $val );
str_replace
またはpreg_replace
を使用する場合は、おそらく配列の先頭に"\r\n"
を配置する必要があります。そうでない場合、\r\n
シーケンスは2つの<br/>
タグに変換されます( \r
が照合され、次に\n
が照合されます)。
eg:
$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );
または
$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );
nl2br()
に依存しない回答が必要な場合:
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
または(この場合):
$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);
PHPサイド:Textarea文字列からPHP文字列へ
$list = str_replace('|', ' ', $r['db_field_name']);
PHPサイド:PHP文字列をTextArea文字列に戻します:
<*>所属していません StackOverflow