私はテキストエリアを持っています。ユーザーはテキストエリアにテキストを入力します。テキストエリアには書式設定のために改行を含めることができます。HTML の br ブレークを追加せずに、このテキストをそのまま mySQL データベースに保存します。これは「text blah blah.\n\nText2 blah blah.」のように見えます。データベース レコードで。
を使用して通常の HTML ページにテキストを表示しますecho nl2br($text);
。テキストは適切にフォーマットされており、2 つの改行が 2 つの文として表示され、その間に空白行があります。
ユーザーが元のエントリを編集できるように事前設定されたテキストエリアに同じテキストを送信する場合は、次のコードを使用します。
<textarea><?php echo $text;?></textarea>
データベースに保存されているように、二重改行を含むテキストで満たされたテキストエリアが得られると思います。この場合、nl2br を使用しません。これを使用すると、文字通り HTML 文字が表示されるだけです (実際には改行は作成されません。つまり、ユーザーに br の 6 文字が表示されます)。代わりに、2 つの新しい行を連続して削除することで、2 つの新しい行が 1 つの新しい行になります。単一の新しい行が完全に取り除かれるわけではなく、単一の新しい行のままです。
したがって、要するに、テキストの行間に空白行を含める必要があるフォーマットでテキストを送信すると、テキストの重要なフォーマットが壊れて、改行が 1 行しか表示されません)。
データベースからテキストエリアにテキストを出力するときに、すべての改行を保持するにはどうすればよいですか?