2006年03月23日

修正子を連結して使う

修正子はそれ単体でも使えます(当然です)が、通常は複数の修正子を使います。

例えば、input タグで入力された内容を、確認画面でそのまま表示する場合、エスケープしないといけない文字(<、> など)が入力されることもあります。
この場合、入力された文字をそのまま表示するには、escape が必要です。しかも、未入力の場合は「*未入力」と表示したい場合には、default も使います。

このような場合は、次のように書きます。

{$str|escape|default:"*未入力"}

修正子を複数使う場合は | でつなげて書きます。

textarea で複数行入力の場合は、改行文字も変換してあげないといけないので、

{$str|escape|nl2br|default:"*未入力"}

と書きます。

修正子は左から評価されます。なので、まず、文字をエスケープして、その結果改行文字を置き換えて、その結果空だったら「*未入力」を出すといった具合です。
この順番は大切です。順番を間違えて

{$str|nl2br|escape|default:"*未入力"}

と書いてしまうと、まず改行文字が <br /> に置き換えられて、それがエスケープされるので、実際には改行されずに <br /> と表示されてしまいます。

2006年03月23日 12:46 |  4.変数の修正子


トラックバック

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

コメント

コメントしてください




保存しますか?