nl2br

nl2br関数:改行コードの前に改行タグを挿入する

使い方

$html = nl2br( $text );

長々と入力されたテキストをHTMLにそのまま表示すると改行が半角スペースに変換されます。
その度に「あぁ、そういや、そうだった。」と思い出してこの関数を使う方も多いのではないでしょうか。
それくらい結構利用頻度の高い関数ではありますが、他の言語にはあまり見かけない関数なのでご紹介します。

この関数はテキストの改行コード(CRLF[¥r¥n], CR[¥r], LF[¥n])の前に<br>タグを挿入した文字列を返してくれます。
例えばこんな入力値が、

"1行目のテキスト
2行目のテキスト
3行目のテキスト"

こうなります。

"1行目のテキスト<br>
2行目のテキスト<br>
3行目のテキスト"

第2引数にtrueを指定するとXHTML形式の改行コード<br />を挿入してくれます。
この関数のミソは改行コードを削除はしないことです。
改行コードはそのまま残っていて、改行タグが改行コードの前に挿入されます。

使いどころ

掲示板のような入力された値をそのままブラウザに表示するようなWEBサイトの場合には、この関数を使って表示しましょう。
そうすると改行コードのところで改行されて見えるようになるので、見やすくなります。
ですが、入力された値をそのままブラウザに表示するのは危険ですので、
htmlspecialchars関数などを使ってサニタイズするのを忘れないようにお気をつけ下さい。

nl2br関数を使うときにはhtmlspecialchars関数とまとめて使うと覚えると良いかもしれませんね。

公式サイト
http://www.php.net/manual/ja/function.nl2br.php