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に関する理解のお役に立てると幸いです。