- 更新日: 2017年08月18日
- 公開日: 2017年08月17日
phpでの改行の仕方を解説!nl2brを使いこなそう!
改行をして見やすくしよう!
突然ですがechoを使って文字出力を行う時に、下記のようにうまく改行されず見えづらいと思ったことはないでしょうか。
<?php
echo 'こんにちは';
echo 'さようなら';
<実行結果>
こんにちはさようなら
そうなんです。echoを使うだけでは改行されないんです。Rubyならpで出力するごとに改行されるし、JavaだってSystem.out.printlnを使えば出力ごとに改行されるのに…。
といった感じでPHPで改行するには少し手間が必要なんですね。
ちなみに「\n」の改行コードを使えば改行されるんじゃ?って思ったりもしますが、
<?php
echo 'こんにちは\n';
echo 'さようなら';
<実行結果>
こんにちは\nさようなら
\nって文字として出力されるんかい!っていう。
この記事ではそんな悩みを解消するための改行の仕方を解説していきます。
ソースコード中にhtmlの改行文字を入れる
じゃあ改行コード「\n」が使えないならじゃあhtmlの改行文字である「<br>」はどうだ!
<?php
echo 'こんにちは';
echo '<br>';
echo 'さようなら';
<実行結果>
こんにちは
さようなら
改行できました!
でも一回だけならまだしも、何回も改行する場合に毎回brタグを書くのは大変そうです。そこで、他のやり方も続けて見ていきましょう。
preタグで改行させる
htmlのpreタグを使ってprint_rを出力すると改行がそのまま表示されます。preタグは要素内の改行や半角スペースをそのまま表示してくれるというタグです。
<pre>
<?php
$text = 'こんにちは
さようなら';
print_r ($text);
?>
</pre>
<実行結果>
こんにちは
さようなら
確かに、改行が改行のまま表示されています!
ただこのpreタグは改行があれば改行してくれますが、改行がない場合は改行がされません。preタグで囲まれた文字列は改行ない限り、折り返されずに出力されてしまいます。そのため、実際に画面に表示するために使うのではなく、デバッグの際に用いることが望ましいです。
preタグはデバッグの際に利用するといいましたが、真骨頂は配列や連想配列などの変数を見やすく出力してくれる部分にあります。
例えば、配列の中身を表示したい場合にechoを用いると、
<?php
$array = array(
'dog' => '犬',
'cat' => '猫'
);
echo $array;
<実行結果>
Array
こんな風に配列ということだけは教えてくれるのですが、その中身までは表示してくれません。ですが、preタグとprint_rを使えば、
<pre>
<?php
$array = array(
'dog' => '犬',
'cat' => '猫'
);
print_r ($array);
?>
</pre>
<実行結果>
Array
(
[dog] => 犬
[cat] => 猫
)
といった感じで見やすく表示してくれます!このようにデバッグの際にはpreタグを用いるといいでしょう。
nl2brを使って改行させる
nl2br関数という改行コード「\n」を実際に改行として出力してくれる関数があります。
<?php
echo 'こんにちは';
echo nl2br('/n');
echo 'さようなら';
<実行結果>
こんにちは
さようなら
もし何度も書くのが面倒なら関数にしてしまえば多少は楽になるかと思います。
<?php
function br() {
echo nl2br('\n');
}
echo 'こんにちは';
br();
echo 'さようなら';
<実行結果>
こんにちは
さようなら
改行できたし、見やすくなりました!
\Webサイト担当者としてのスキルが身に付く/
まとめ
PHPの文字出力で改行したい場合、デバッグ時にはpreタグ、それ以外はnl2br関数を使用すると良いでしょう!
- この記事を書いた人
- CodeCampus編集部