テキストエリアからのユーザー入力をmysqlデータベースに挿入しようとしています。現在のところ、ユーザーが次のように入力した場合:
"Hello.
hello."
改行なしでデータベースに挿入されます。どうすればこれを修正できますか?
phpMyAdmin を使用して、改行がないことを伝えている可能性があります。もしそうなら、それはあなたに嘘をついています。phpMyAdmin はコンテンツを HTML として表示し、改行は単一の空白に変換されます。
値を出力するだけで phpMyAdmin を使用していない場合でも、HTML で空白が折りたたまれます。形式を維持するには、<pre>
タグ間または css スタイルのスパンで出力しますwhite-space: pre
実際には、改行はデータベースに挿入されていますが、表示されていないだけです。なぜなら"\r\n"
、これはLine FeedとCarriage Return だからです。詳細については、こちらを参照してください。
データは次のように保存する必要があると思います: 変換は行われません。コンテンツを HTML に書き込むときは、単にnl2br($content)
.
また、そのコンテンツをテキストエリアタグに出力するときに、自動的に認識されるため、編集も簡単です。"\r\n"
PHPを使用している場合は、使用することをお勧めします$message = nl2br($message);
これにより、改行が br に変わります。