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

| コメント(3) | トラックバック(0)

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 は使わないようにしましょう。

トラックバック(0)

トラックバックURL: http://www.karakuriya.biz/mt/mt-tb.cgi/386

コメント(3)

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

http://jp2.php.net/nl2br

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

管理人者様
初めまして、maitoと申します。

先日、TBを送ったのですが、
うまく反映されていない
ようなので、コメントにて失礼いたします。

maito様
初めまして。TBうまくいきませんでしたか。失礼しました。

コメントする

このブログ記事について

このページは、H.Imaiが2006年3月 8日 18:28に書いたブログ記事です。

ひとつ前のブログ記事は「escape:<や>をそのまま表示」です。

次のブログ記事は「修正子を連結して使う」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。