2006年03月08日

nl2br:改行文字を <br />に変換

textareaで複数行入力すると、必ずと言っていいほど「改行」されます。これをこのまま表示しても改行されません。HTMLの改行は <br /> なので、HTML上で改行させるには、これに変換しないといけません。

PHPには便利な関数があって、nl2br() を使って、改行文字を <br /> に変換できます。通常はこれを使って表示すればいいのですが、まったく同じ機能がSmartyにもあります。それが、 nl2br です。

{$str|nl2br}

で、勝手に改行してくれます。

nl2br も、前述の default や escape とともに、非常によく使います。
言ってしまえば、この3つを組み合わせて使います。たいがい、3点セットで使えば、ほとんどは、思い通りの表示になります。

注意しないといけないのは、<input> タグの value や、<textarea> で指定する場合です。これらの場合で nl2br を使ってしまうと、改行が <br /> に変換されてしまい、正しい値を表示できません。

これは(たぶん)間違い

<textarea name="xxx">{$str|nl2br}</textarea>

この場合は、 nr2br は使わないようにしましょう。

2006年03月08日 18:28 |  4.変数の修正子


トラックバック

このエントリーのトラックバックURL:

コメント

全ての改行文字の前にが入るのです。
変換するんじゃない。

http://jp2.php.net/nl2br

ここをしっかり読んでみよう。

nirvana : 2006年12月28日 18:21

コメントしてください




保存しますか?