PHPでは、ブラウザやコンソールでの表示に改行を挿入したり削除したりすることができます。
この記事では、
・ブラウザ上で改行を挿入する方法
・ソースコード上で改行を挿入する方法
・改行を削除する関数を使用する方法
という基本的な内容から、
・PHP_EOLを使用して改行コードを指定する方法
などの応用的な使い方に関しても解説していきます。
今回はそんな改行コードの処理を行う方法について、わかりやすく解説します!
改行を挿入する
PHPで改行を行うには、ブラウザ上で改行する方法と、ソースコード上で改行を行う方法があります。
ブラウザ上で改行する
ここではブラウザに文字列を出力するときによく使用する、echoで改行コードを指定する方法について解説してきます。
ブラウザに文字列を出力するときはechoを使用しますが、以下のように連続してechoを指定しても、ブラウザ上では改行されずに1列で表示されてしまいます。
サンプルプログラム:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <title>改行なし</title> <body> <?php echo 'Samurai'; echo 'Engineer'; ?> </body> </html>
実行結果:
SamuraiEngineer
これを改行して見やすく表示する場合にはechoのあとに、brタグを改行したい箇所に挿入します。
サンプルプログラム修正後:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <title>改行あり</title> <body> <?php echo 'Samurai'; echo '<br>'; echo 'Engineer'; ?> </body> </html>
実行結果:
Samurai Engineer
echoにbrタグを挿入すれば、ブラウザ上で改行されていることがわかりますね!
以下のようにechoで文字列に続けてbrタグを記述しても同様の結果になります。
echo 'Samurai<br>'; echo 'Engineer';
ソースコード上で改行する
ここでは、ソースコード上で改行を行う方法について解説します。
ソースコード上で改行する場合は、ソースコードの改行したい箇所に改行コードを指定します。
改行コードは、WindowsやMacOS、LinuxなどのOSによって異なります。OSごとの改行コードは以下のようになっています。
Windows:CR+LF(\r\n)
Mac:CR(\r)
Unix/Linux:LF(\n)
以下に改行コードを指定したサンプルを記述します。
サンプルプログラム:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <title>改行コードあり</title> <body> <?php echo 'Samurai'."\n"; echo 'Engineer'."\n"; ?> </body> </html>
実行結果:
Samurai Engineer
以下のように変数の後に改行コードを挿入する場合も、方法は同じです。
$value1 = 'Samurai'; $value2 = 'Engineer'; echo $value1."\n"; echo $value2;
ソースコードの改行コード指定は‘(シングルクォーテーション)ではなく、"(ダブルクォーテーション)で括る必要があります。
シングルクォーテーションでは、特殊文字が判別できずに文字列として扱ってしまいますので注意しましょう。
PHP_EOLによる改行コード指定
改行コードは、定数PHP_EOLを使用することができます。
前述したようにソースコード上で改行を行う場合は、WindwosやMacOS、LinuxなどのOSによって改行コードはそれぞれ異なるため、指定方法を誤ると正しく改行されないこともあります。
改行コードの定数PHP_EOLを使用すれば、正しく改行を行うことができます。
以下に定数PHP_EOLを使用した改行方法を記述します。
サンプルプログラム:
<?php $value1 = 'Samurai'; $value2 = 'Engineer'; echo $value1; //改行コードの定数を指定する echo PHP_EOL; echo $value2; ?>
実行結果:
Samurai Engineer
このように改行コードの定数PHP_EOLを指定すれば、OSを意識することなく簡単に改行することができますね!
改行コードはOSによって指定方法が異なるので、確実に改行を行うためには定数PHP_EOLを使用することを強くオススメします。
改行を削除する
テキストファイルから読み込んだ改行コードを含んだ文字列の改行コードのみを削除して、一行で表示させたい場合もあります。
テキストファイルをそのまま読み込んで変数に格納しても、その変数を表示すると改行されてしまいます。
ここでは、改行コードを削除する方法を解説していきます。
str_replace関数を使う
改行コードを削除するには、str_replace関数を使う方法があります。
str_replace関数は、検索した文字列に一致した全ての文字列を置換し、置換した文字列を返す関数です。
改行コードを検索し、空文字列に置換することで、改行コードを削除することができます。
以下はstr_replace関数を使って改行コードを削除するサンプルです。
読み込むテキストファイルは、PHPの実行ファイルと同じディレクトリに予め用意しておきます。
サンプルプログラム:
<?php // ファイルの内容を取得する $file = 'test.txt'; $text = file_get_contents($file); echo $text."\n"; // 改行コードを''(空文字)に置き換える $text = str_replace(PHP_EOL, '', $text); echo '改行削除: '; echo $text; ?>
test.txt
AAAAA BBBBB CCCCC DDDDD EEEEE
実行結果:
AAAAA BBBBB CCCCC DDDDD EEEEE 改行削除: AAAAABBBBBCCCCCDDDDDEEEEE
サンプルではfile_get_contents関数でファイルの全文を読込み、変数に格納しています。
そのまま変数をechoで出力してソースコードを確認すると改行した状態で出力されますが、str_replace関数で改行コードを空文字列に置き換えると、テキストの内容が1行で表示されます。
str_replace関数の使い方については、以下の記事で詳しく解説しています!
preg_replace関数を使う
preg_replace関数を使って改行コードを削除することもできます。
preg_replace関数は、正規表現でマッチした文字列を置換し、置換した文字列を返す関数です。
str_replace関数を使う方法と同様、改行コードを検索し、空文字列に置換することで、改行コードを削除することができます。
以下はpreg_replace関数を使って改行コードを削除するサンプルです。
読み込むテキストファイルは、str_replace関数を使用したサンプルと同様のものを使っています。
サンプルプログラム:
<?php // ファイルの内容を取得する $file = 'test.txt'; $text = file_get_contents($file); echo $text."\n"; // 改行コード(\nまたは\rまたは\r\n)を''(空文字)に置き換える $text = preg_replace('/\r\n|\r|\n/', '', $text); echo '改行削除: '; echo $text; ?>
実行結果:
AAAAA BBBBB CCCCC DDDDD EEEEE 改行削除: AAAAABBBBBCCCCCDDDDDEEEEE
preg_replace関数で\nまたは\rまたは\r\nにマッチしたら空文字に置き換えるように指定しています。
str_replace関数を使った時と同様の結果になります。
preg_replace関数の使い方については、以下の記事で詳しく解説しています!
trim関数を使う
trim関数は、文字列の先頭および末尾にある空白文字を取り除く関数です。
trim関数が取り除く文字には改行コードも含まれます。
trim関数を使って改行コードを削除するサンプルです。
サンプルプログラム:
<?php // ファイルの内容を取得する $file = 'test.txt'; $text = file_get_contents($file); echo 'trim前: '; echo $text."\n"; // 改行コードを取り除く $text = trim($text); echo 'trim後: '; echo $text; ?>
test.txt
AAAAA BBBBB
実行結果:
trim前: AAAAA BBBBB trim後: AAAAA BBBBB
trim関数実行後は、「AAAAA」の前の改行と「BBBBB」の後の改行が削除されているのが分かります。
trim関数は文字列の先頭および末尾の改行コードのみ取り除くので、「AAAAA」と「BBBBB」の間にある改行コードは残ります。
まとめ
今回は改行を挿入する方法、改行を削除する方法について解説しました。
PHPなどのウェブサービスを開発する言語では、ブラウザ上に表示される文字列を改行することもよくありますので、この機会にぜひ覚えておきましょう。
もし改行コードの処理について忘れてしまったら、この記事を思い出してくださいね。