PHPでの改行コードとbrタグの出力方法と違い

PHPの改行コードとbrタグというのは実は全くの別物です。

僕自身もそうでしたが、それを知らないと思ったように改行ができなくて困ります。

という訳で改行コードとbrタグの出力のやり方とその違いを説明していきます。

改行コード、brタグのそれぞれの出力方法

まず最初は改行コードとbrタグを画面に出力する方法を簡単に紹介します。

それぞれの出力方法は次の通り

改行コードの出力

改行コードっていうのはおなじみの  \r  とか  \n  とかのことです。

ちなみに  \r  はキャリッジリターン(CR)、 \n  がラインフィード (LF)と呼びます。

OSによってこの改行コードは異なり、代表的なOSでは改行コードは次の通り

  • Windows系 : CRLF ( \r\n )
  • Mac OS(9以前) : CR ( \r )
  • Unix系 : LF ( \n )

 

そしてPHPでは改行コードは次のように文字列中で  \n  または  \r  で表示可能です。

上のコードを実行すると改行が入った文字列が表示されます。

 

ただし改行コードが使えるのはダブルクォート(")内だけです。

次のようにシングルクォートで囲った文字列内では改行コードは使えません。

上のコードを実行すると  \n  がそのまま文字列で表示されてしまいます。

なので改行コードはダブルクォート内だけでしか使えないことに要注意

brタグを出力する方法

次はbrタグで出力する方法です。

brタグというのはHTMLでよく使われる文章内で改行するためのタグのこと

 

PHPでbrタグを使うには単純に echo で出力する文字列内にbrタグを含めるだけ

こういう風に書けばブラウザ上で次のように改行して表示されます。

 

この次で説明する違いにも関係しますが、これはブラウザ上で改行するためのものです。

テキストとして改行しているわけではありません。

改行コードとbrタグの違い

では改行コードとbrタグの違いはいったい何なのか・・・?

結論から言ってしまうと改行コードとbrタグの違いとは次のようなことです。

  • 改行コード
    テキスト内で改行するときに使う
  • brタグ
    HTML内で改行するときに使う

これがどういうことかについて次でさらに詳しく説明します。

 

まず  \r  とか  \n  などの改行コードはテキスト内で改行するためにしか使えません。

なので次のようにHTMLの出力時に改行のつもりで使ってはいけないということです。

こうするとテキストとしては改行されますが、HTMLとしては改行されません。

つまりブラウザ上では次のように改行なしで表示されるということです。

こうなるのはHTMLでは連続する空白文字は全てスペース1つに置き換えられるからです。

なのでHTMLとして改行したいなら必ずbrタグを使いましょう。

 

逆にテキストとして改行したい場合はbrタグは使ってはいけません

ただ単にHTMLソースの見た目を整えるだけなら改行コードを使う必要があります。

例えば次がscriptタグ内でソースコードの見た目を整えているコード例

このようにして出力したHTMLソースをテキストとして見てみると次のように表示されます。

 

改行コードはソースコードの見た目を整えるため、
brタグは実際にブラウザに出力するときに改行するため

こういう風にして使い分けていく必要があります。

ここまでのまとめ

簡単にここまでのことをまとめます。

 

まず改行コードとbrタグを出力する方法をまとめると次の通り

  • 改行コード
    文字列内で  \r  や  \n  を使う
    ただしダブルクォート(")内だけでしか使えない
  • brタグ
    出力したい文字列に  <br>  を含める

 

そしてこの2つは全く別物でそれぞれ次の目的で使い分けるべき

  • 改行コード
    テキストとして改行したい場合に使用
    例えばHTMLソースの見た目を整えたいときなど
  • brタグ
    HTMLとして改行したい場合に使用
    例えば実際にブラウザ上で改行させたいときなど

 

PHPでは改行コードとbrタグは全く別物なので注意して使っていきたいですね。

という訳でこの2つの出力方法と違いについてまとめてみました。

ではでは・△・)ノ バイバイ

PHP

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください