スライドショー

【PHP入門】改行コードをbrタグに変換!!nl2brをわかりやすく解説

こんにちは!エンジニアの大竹です!

今回は改行文字(コード)をbrタグに変換する便利なnl2br関数について解説します!

使い方自体はとても簡単です!

ただし、nl2brは使い方を間違えると正しく変換されないこともあるので注意が必要です!

この記事では、

・nl2brの基本的な使い方
・nl2brのオプションを用いた詳細な使い方

といった内容から

・nl2brの逆(brタグを改行コード)にする方法
・nl2brを使ったけど変換されなかった場合の対処法

までの内容を解説していきます!

nl2brを使ってみよう

使い方

まずは基本的な使い方を知りましょう!
といってもとても簡単です。

コードを見てみましょう!

<?php
$message = "Melon\r\nBanana\r\nApple";

echo nl2br($message);
?>

実行結果:

Melon<br />

Banana<br />

Apple

このサンプルコードを見ていただいて分かる通り改行コード「\r\n」「<br />」に変換するというとてもシンプルな関数です。

ちなみに改行コードが「\n」だった場合どうなるでしょうか?

こちらも次のサンプルをごらんください

<?php
$message = "Melon\nBanana\nApple";

echo nl2br($message);
?>

実行結果:

Melon<br />

Banana<br />

Apple

こちらのケースも同じ結果になりました。
実行環境によって改行コードに違いがあったとしても同様に出力されます。

次の項では変換後のbrタグに関係するオプションについて解説します!

オプション

前項では改行コードが「<br />」に変換できました。

nl2brではbrタグの出力方法を選ぶことができます。

実際にサンプルコードを見てみましょう。

<?php
$message = "Melon\nBanana\nApple";

echo nl2br($message ,false);
?>
Melon<br>
Banana<br>
Apple

前項のサンプルコードとの違いわかりますか?

変換されたbrタグが「<br />」ではなく「<br>」になっています。

何らかの理由で「<br />」ではなく「<br>」したい場合は第二引数のオプションにfalseを指定すると良いでしょう。

brタグを改行コードへ変換する

先程までは改行コードをbrタグに変換するnl2br関数についてご紹介しました。

では逆にbrタグを改行コードに変換するための関数はあるのでしょうか?

結論から言うとありませんが、次のようなサイトで解説されているような手法を使うことで実現することが可能です。

【PHP】本当のnl2brの逆関数
http://hi.seseragiseven.com/archives/559

nl2brを使ったのにbrタグに変換されない場合

nl2brは改行コードをbrタグに変換する関数ですが、ある使い方をすることで変換されなくなってしまいます。

まずは正しい使い方を見てみましょう。

<?php
$message = "Melon\nBanana\nApple";

echo nl2br($message);
?>

実行結果:

Melon<br />

Banana<br />

Apple

これは一番最初の章で提示したサンプルです。
特におかしいところはありません。

では次に問題のあるサンプルを見てみましょう。

<?php
$message = 'Melon\nBanana\nApple';

echo nl2br($message);
?>

実行結果:

Melon\nBanana\nApple

実行結果に違いがでていますよね!?

サンプルコードの違いを見ると大きく違いがないように感じるかもしれません。

しかし、先に紹介したコードはダブルクォーテーションで文字を囲っており2つ目のコードではシングルクォーテーションを囲っています。

シングルクォーテーションで文字を囲った場合は、改行コードが改行コードとして評価されないためこのような状態がおきます。

そのため、改行コードを取り扱うときにはこのシングルクォーテーションとダブルクォーテーションの違いをより意識して使い分ける必要があります。

まとめ

いかがだったでしょうか?

今回は簡単に使えるnl2br関数について紹介しました。

しかし、動作を正しく理解していないと思わぬところで不具合を出してしまう可能性もあり注意が必要です。

この記事の内容を忘れないようにしておきましょう!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

オータケ

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説