web-dev-qa-db-ja.com

テキストエリアの入力を改行でエコーする方法は?

Textareaを使用してテキストをDBに送信しています。

Dbのスクリーンショット:

enter image description here

DBから読み取っているときに改行が削除されますが、$ row ['opmerkingen']にそれらを保持するにはどうすればよいですか?

enter image description here

21
Muiter

テキストを表示する場合、 nl2br() を使用して改行を_<br/>_タグに変換します。つまり、_<?php echo $row['text']; ?>_ではなく<?php echo nl2br($row['text']); ?>を使用します。

デフォルトでは、ブラウザは改行をスペースとして表示するため、_<br/>_タグに変換する必要があります。


これが便利だと思う人は、EmilVikströmが提案する_white-space: pre-line_の使用を検討してください。私はもはやWebの人ではなく、簡単にこれを確認することはできませんが、Boazはコメントで、これはすべての最新ブラウザーでサポートされていると述べています。もしそうなら、それはnl2br()を使用するよりも望ましいでしょう。

67
binaryLV

Nl2brの代わりに、CSS属性 white-space を使用することもできます。

white-space: pre-line;
21
Emil Vikström

私は次のように置きますが、一重引用符では機能しませんです。

echo $row['text'].'\n';

二重引用符を置きます。その後働いた。

<textarea rows="10" cols="62" style="white-space: pre-line;" wrap="hard">
<?php echo $row['text']."\n"; ?>
</textarea>

データを取得するとき、それは\ r\nで始まります。 二重引用符も使用します。

6
Sumith Harshan