19

を含むフォームがあり<textarea>、サーバー側でそのテキストエリアの改行をキャプチャして、<br/>.

それは可能ですか?

のCSSで設定white-space:preしてみましたtextareaが、まだ十分ではありません。

4

4 に答える 4

34

機能をご覧くださいnl2br()。それはあなたが望むことを正確に行うべきです。

于 2008-11-14T03:35:41.417 に答える
9

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 );
于 2008-11-14T16:03:40.173 に答える
5

str_replaceまたはを使用する場合preg_replaceは、おそらく"\r\n"を配列の先頭に配置する必要があります。そうしないと、シーケンスが 2 つのタグ\r\nに変換されます (が一致し、次にが一致するため)。<br/>\r\n

例えば:

$val = str_replace( array("\r\n", "\n","\r"), '<br />', $val );

また

$val = preg_replace( "#\r\n|\n|\r#", '<br />', $val );
于 2009-02-24T20:59:27.470 に答える
0

に依存しない回答が必要な場合nl2br():

$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);

または(この場合):

$newList = ereg_replace( "\n",'<br/>', $_POST['theTextareaContents']);

PHP 側: Textarea 文字列から PHP 文字列へ

$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);

PHP 側: PHP 文字列を TextArea 文字列に戻す:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']);
于 2014-02-06T20:00:59.013 に答える