【PHP】改行関数nl2brの覚書

PHP公式マニュアルによると、

nl2br  改行文字の前に HTML の改行タグを挿入する

とあります。http://jp2.php.net/manual/ja/function.nl2br.php

このnl2br関数ですが、デフォルトでは、xhtml準拠の<br />タグを挿入してきます。

しかし、htmlに準拠しているページでは、<br>タグを使いたいはずです。

その場合には、nl2br($value , false) と第二引数にfalseを指定してやると<br>を挿入することができます。

ただし、PHP5.3以上のバージョン限定です。

CORESERVERで試したところ、残念ながらエラーになりました。PHPのバージョンを調べると5.2.5でした。

どうするべきか調べると、正規表現で改行<br>を挿入するというのが現実的だそうです。

http://q.hatena.ne.jp/1253302152

$text = preg_replace( '/\n|\r|(\r\n)/', "<br>", $text );

これでOKです。

ところが、CORESERVERでは、一つの改行のはずが、<br><br>と2個の改行が入ってしまう場合があります。

この場合は、パターンマッチ部分の\nを\n\nと2つにしてあげると一つの<br>が挿入されます。

まあ、そこまで<br>と<br />にこだわらないなら、はじめのnl2br関数のままでよいかもしれません。

蛇足ですが、nl2br関数は、newline to br の略みたいですね。

newline 2 br →nl2br ということのようです。

カテゴリー: PHP, XREA/CORESERVER パーマリンク

コメントを残す

メールアドレスが公開されることはありません。