質問

<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('|', '&#13;&#10;', $r['db_field_name']);

PHPサイド:PHP文字列をTextArea文字列に戻します:

<*>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top