支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • PHPにおける改行方法の分かりやすい

はじめに

本記事では具体的な例を示しつつ、PHPにおける改行方法を紹介します。これまでPHPをあまり使用したことがない方も本記事の内容を基に、簡単に試すことができます。

実際に試される方は、PHPファイルを用意して、後で示す「<!DOCTYPE html>」から「</html>」までをコピー&ペーストしてください。その後、紹介する改行方法の具体例をコピーして<body></body>の間を随時入れ替えることで試すことができます。

PHPにおける改行

ここでは、以下のソースコードを基に改行方法について紹介します。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Sample</title>
</head>
<body>
    <?php
    	 echo "文字列A";
  	 echo "文字列B";
    ?>
</body>
</html>

ちなみに上記の場合、次のように表示されます。以下のソースコード上の<body>タグを抜粋したものは、ブラウザ上で[右クリック]して[ページのソースを表示]をクリックすると、表示されます。

・ソースコード上
<body>
    文字列A文字列B</body>
・ブラウザ上
文字列A文字列B

PHPにおける改行方法には、「ソースコード上だけの改行」と「ソースコードとブラウザ上の改行」があります。以下では、その方法について例を示しながら紹介します。ただし、ソースコード上の表示等については、冗長性の回避のため、上記のように<body>タグ内を抜粋して紹介します。

ソースコード上の改行方法

先ほど示した例の<body>タグ内は、改行されていません。しかし、以下で紹介する方法を使用すると改行されます。

[\n]

その他のプログラミング言語のJavaやC言語などと同様に、[\n]を使用すると、改行されたものが出力されます。ただし、バックスラッシュは環境によって異なります。

<body>
    <?php
    	 echo "文字列A\n";
  	 echo "文字列B";
    ?>
</body>

上記の場合は以下のように表示されます。

・ソースコード上
<body>
    文字列A
文字列B</body>
・ブラウザ上
文字列A 文字列B

ソースコード上は改行され、ブラウザ上には文字列の間に空白が入りました。しかし、この方法の注意点は、全てのOSで通用しない点です。OSによって改行コードが異なるため、指定方法を誤った場合、改行されないこともあります。これを解決するためには、次の定数を使用します。

[PHP_EOL]

ソースコード上の改行には、定数[PHP_EOL]でも可能です。これは、Windows や MacOS、LlinuxなどのOSに関係なく、正しく改行することができます。使用方法の例を2通り紹介します。いずれも先程示した、[\n]と同様の結果になります。

・使用方法その1
<body>
    <?php
    	 echo "文字列A",PHP_EOL;
  	 echo "文字列B";
    ?>
</body>
・使用方法その2
<body>
    <?php
    	 echo "文字列A";
	 echo PHP_EOL;
  	 echo "文字列B";
    ?>
</body>

「使用方法その1」では、「”文字列A”」と[PHP_EOL]の間を「,(カンマ)」で区切ります。

ソースコードとブラウザ上の改行方法

<br />タグ

PHP内でHTMLの<br />(<br>や</br>も可能)タグを使用すると、ブラウザ上には改行されたものが表示されます。

<body>
    <?php
        echo "文字列A<br />";
        echo "文字列B";
    ?>
</body>

上記の場合は次のように表示されます。

・ソースコード上
<body>
    文字列A<br />文字列B</body>
・ブラウザ上
文字列A
文字列B

[nl2br]

先程紹介した<br />タグによるブラウザ上の改行方法は、ブラウザ上の改行は可能ですが、ソースコード上は改行されていません。両方とも改行するには、[nl2br]関数を使用します。[nl2br]は、[\n]を記した部分に自動で<br />タグを入れることができます。

<body>
    <?php
        echo nl2br("文字列A\n文字列B\n文字列C\n");
    ?>
</body>

上記の場合は以下のように表示されます。

・ソースコード上
<body>
    文字列A<br />
文字列B<br />
文字列C<br />
</body>
・ブラウザ上
文字列A
文字列B
文字列C

また、以下に示すように、[nl2br]は[PHP_EOL]で改行した部分にも自動で<br />タグを入れることができます。ちなみに、「.=」は、文字列の連結をしています。つまり、下の例では変数に代入していますが、「echo "Hello"."World!";」は「HelloWorld!」と表示されます。

<body>
    <?php
        $str ="文字列A";
        $str.=PHP_EOL;
        $str.="文字列B";
        echo nl2br($str);
    ?>
</body>

上記の場合は以下のように表示されます。

・ソースコード上
<body>
    文字列A<br />
文字列B</body>
・ブラウザ上
文字列A
文字列B

<pre>タグ

これまでの<br />タグや[nl2br]では、すべての改行したい場所に、<br />タグなどを配置する必要があります。しかし、HTMLの<pre>タグを使用すると、PHP上で記述した改行や半角スペースをそのまま表示することができます。

<body>
    <pre>
        <?php
            $str ="文字列A
            文字列B     文字列C
            文字列D";
            echo nl2br($str);
        ?>
    </pre>
</body>

上記の場合は以下のように表示されます。

・ソースコード上
<body>
    <pre>
        文字列A<br />
            文字列B     文字列C<br />
            文字列D    </pre>
</body>
・ブラウザ上
       文字列A

            文字列B     文字列C

            文字列D   

このように<pre>タグを使用すると、PHP上で<br />タグや[nl2br]を使用することなく改行などが可能です。

まとめ

本記事では、PHPにおけるソースコード上とブラウザ上の改行方法について、合計5つ紹介しました。それらのうち、基本的には[nl2br]を使用し、テストの際など簡単に試したい場合は<pre>タグを使用するといったように使い分けることもできます。本記事を活用して実際に試していただいたき、PHPに関する理解のお役に立てると幸いです。