私はについていくつか質問があり\r\n
ます:
- 改行はブラウザに依存しますか?(ブラウザでの表示方法ではなく、
<textarea>
httpリクエストを介してphpに送信する方法) - 改行はシステムに依存しますか?(phpが実行される場所)
- PHPは暗黙の変換を適用しますか?
- mysqlは暗黙の変換を適用しますか?
前もって感謝します!
私はについていくつか質問があり\r\n
ます:
<textarea>
httpリクエストを介してphpに送信する方法)前もって感謝します!
<br>
。ブラウザで改行を取得するために使用します\n
OSX、\n
Unix / Linux、\r\n
Windowsの場合一般に、ブラウザ\r
の場合、 (タブ)の(空白)の\n
ような空白文字です。一部のタグ(スクリプト、preなど)内では、改行記号として扱われます。この場合、ブラウザは一般的な改行シーケンス(、、)を理解します。' '
\t
\r
\r\n
\n
データがtextareaから取得される場合、改行は常に。として表され\r\n
ます。
phpファイルの改行は、それらが実行されているシステムに依存しません。これは、phpファイルの作成に使用されるファイルエディタの設定によって異なります。phpファイルを別のシステムにコピーしても、改行の形式は変更されません。
たとえば、次のコードを見てください。
print_r("
" === "\r\n");
その結果は、このファイルの作成に使用されたエディターの設定によって異なります。現在のシステムには依存しません。
ただし、システムに含まれている他のファイル(テキストファイルなど)を読み取ろうとしている場合、これらのファイルはおそらくシステムの一般的な改行形式を使用します。
いいえ、PHPとMySQLは暗黙的な変換を適用しません。
システムに依存しない方法は、PHP_EOL定数を使用することです。
新しい行はブラウザに依存しません。CSS空白のタグを外側に配置します。pre新しい行をBRタグに変換するには、 nl2br() php関数を実行する必要があります。
<br>
ブラウザに依存しないので、\n
そうする必要があります。
知らない\r
MySQLはそれを変換しません
nl2brに興味があるかもしれません。これは、説明したような改行文字を取り、それらをHTMLの改行(<br />
)に置き換えます。
私にとっての大きな落とし穴は、一重引用符で囲まれた文字列では、'like\nthis'
エスケープシーケンス(のような\n
)が解釈されないことでした。"like\nthis"
実際の改行を取得するには、二重引用符を使用する必要があります。