コードを書いている時に、ソース内で改行したい場合に改行できないことがある。
echo 'hello<br>bye';
これだと、当然だけどブラウザ上だと改行できるがソースコードの中での改行はできない。
echo 'hello\nbye';
「\n」を使うことによってブラウザ上では改行はされないがソースコード上では改行される・・・はず。
だが、これだと改行されない。調べてみるとシングルクオートだと改行されない模様。
echo "hello\nbye";
これでソースコード上で改行できるはず。
なお、大半のサーバーがUNIX系なので\nが使えるが、Windowsや古いMacのローカルサーバーとWindowsサーバーには注意が必要。もし、\nで改行されない場合は下記を試してみるといいかも。
サーバーOS | 改行文字 | 改行コード |
UNIX系 Mac OS X | \n | LF(ラインフィールド) |
Windows | \r\n | CR+LF |
Mac(OS9以前) | \r | CR(キャリッジリターン) |
なお、改行文字をOS気にせずに使いたい場合は、自動判定し改行文字を設定してくれるPHP_EOLがある。
echo 'Hello' . PHP_EOL . 'bye';
目次
ヒアドキュメントを使う
ヒアドキュメントとは特殊な記号などを含む文字列をソースコード中に記述するための特別な記法のこと。
echo <<< EOD
Hello<br>
bye
EOD;
ただし、これだとソースコードには改行タグが入ってしまうため、うまくPHP関数などを駆使しながら行う必要があるので、PHP_EOLが確実かも?
コメント