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:



