uiuifree.com

- サイト制作のノウハウと最適化を目指して-

2020.11.15【PHP】ブラウザやソースで改行処理を行う方法を解説します

【PHP】ブラウザやソースで改行処理を行う方法を解説します

プログラミングを学び始めたときにHTMLやechoで文字列出力をしたときに文字列が連続して表示されて見辛いと感じたことはありませんか。Wordやテキストと違いプログラム上で改行を出力するためには意図的に改行を設定する必要があります。今回はコードの基本である改行について紹介していきます。

PHPで改行する方法

PHPで開発する場合WEBサイトを開発することが多いです。そのためPHPの改行を考えるときにはブラウザ表示で改行したいか、コードや出力ファイルで改行するかで手法が異なります。

一度改行する前の状態を見てみましょう

<!DOCTYPE html>
<html>
<body>
<?php
echo "タイトル";
echo "本文";
?>
</body>
</html>

html-one-line1.png html-one-line2.png

このようにechoで出力しただけでは「ブラウザ」でも「HTMLのソース確認」でも改行されていないことが確認できました。

PHPで改行するには次の方法があります。

  • <br />タグを挿入する
  • 改行コードを挿入する

ブラウザで改行をするにはbrタグを使う

ブラウザ(HTML)で改行するためにはHTMLタグの<br />を使用します。

<!DOCTYPE html>
<html>
<body>
<?php
echo "タイトル<br>";
echo "本文<br>";
?>
</body>
</html>

html-one-line3.png

ブラウザで表示すると改行されていることが確認できました。

しかしHTMLソースを確認しても<br />では改行はされません。 html-one-line5.png

<br />はブラウザのHTML出力で改行させるコードなので他の部分では改行されないのです。

ソースで改行するには改行コードを使う

ソース出力やファイル、コンソールで改行をしたい場合は改行コードを使用します。
「改行コード」とは「改行するための制御文字」です。詳しい説明をするとWindowsとMacなどOSによって動作が異なるので省略しますが、 制御文字の\r\nを使うことで出力データの改行を行うことができます。

コードに制御文字を入れた例をみてみましょう。

<!DOCTYPE html>
<html>
<body>
<?php
echo "タイトル<br>\r\n";
echo "本文<br>\r\n";
?>
</body>
</html>

html-one-line4.png

このようにソース出力でも改行されていることが確認できました。
注意点としては文字列を囲うのに必ずダブルコーテーション"を使用してください。
シングルコーテーション'で囲ってしまうと普通の文字列として画面に出力されてしまいます。

改行コードを使ってブラウザで改行する方法

PHPには改行コードの前に<br />を挿入してくれるnl2brという便利な関数があります。

文字列に含まれるすべての改行文字 (\r\n、 \n\r、\n および \r) の前に
あるいは
を挿入して返します。

<!DOCTYPE html>
<html>
<body>
<?php
echo nl2br("タイトル\r\n");
echo nl2br("本文\r\n");
?>
</body>
</html>

<!DOCTYPE html>
<html>
<body>
タイトル<br />
本文<br />
</body>
</html>

実際に使ってみると先ほどと同じようにソース出力でも改行されていることが確認できました。業務での開発であればDBやファイルから読み取りブラウザに表示させたりする処理で利用したりします、この元データに存在するテキストには<br />を設定しないことが多いので、nl2brを使って改行させて使ったりします。

まとめ

開発を行うと必ず使う改行コード、「HTML」と「他の出力」で使うコードが違うことがわかりました。 HTMLを表示するときは<br />を使って、それ以外の場面では\r\nを使うと覚えていれば良いでしょう。

目次
PROFILE

このサイトを運営してるuiuifreeです。
渋谷のベンチャー企業で2年ほど新規事業を担当した後にフリーランスエンジニアにキャリア転換。
求人サイトの開発が多くエンジニア/看護師/保育士などの分野でサイトを運営しています。

アウトプット中の技術

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)