ソース上で改行できない

コードを書いている時に、ソース内で改行したい場合に改行できないことがある。

echo 'hello<br>bye';

これだと、当然だけどブラウザ上だと改行できるがソースコードの中での改行はできない。

echo 'hello\nbye';

「\n」を使うことによってブラウザ上では改行はされないがソースコード上では改行される・・・はず。

だが、これだと改行されない。調べてみるとシングルクオートだと改行されない模様。

echo "hello\nbye";

これでソースコード上で改行できるはず。

なお、大半のサーバーがUNIX系なので\nが使えるが、Windowsや古いMacのローカルサーバーとWindowsサーバーには注意が必要。もし、\nで改行されない場合は下記を試してみるといいかも。

サーバーOS改行文字改行コード
UNIX系
Mac OS X
\nLF(ラインフィールド)
Windows\r\nCR+LF
Mac(OS9以前)\rCR(キャリッジリターン)

なお、改行文字をOS気にせずに使いたい場合は、自動判定し改行文字を設定してくれるPHP_EOLがある。

echo 'Hello' . PHP_EOL . 'bye';
目次

ヒアドキュメントを使う

ヒアドキュメントとは特殊な記号などを含む文字列をソースコード中に記述するための特別な記法のこと。

echo <<< EOD
Hello<br>
bye
EOD;

ただし、これだとソースコードには改行タグが入ってしまうため、うまくPHP関数などを駆使しながら行う必要があるので、PHP_EOLが確実かも?

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次