2006年03月23日
修正子を連結して使う
修正子はそれ単体でも使えます(当然です)が、通常は複数の修正子を使います。
例えば、input タグで入力された内容を、確認画面でそのまま表示する場合、エスケープしないといけない文字(<、> など)が入力されることもあります。
この場合、入力された文字をそのまま表示するには、escape が必要です。しかも、未入力の場合は「*未入力」と表示したい場合には、default も使います。
このような場合は、次のように書きます。
{$str|escape|default:"*未入力"}
| この記事へ | 4.変数の修正子 | コメント (0) | トラックバック (0) | 先頭へ
2006年03月08日
nl2br:改行文字を <br />に変換
textareaで複数行入力すると、必ずと言っていいほど「改行」されます。これをこのまま表示しても改行されません。HTMLの改行は <br /> なので、HTML上で改行させるには、これに変換しないといけません。
PHPには便利な関数があって、nl2br() を使って、改行文字を <br /> に変換できます。通常はこれを使って表示すればいいのですが、まったく同じ機能がSmartyにもあります。それが、 nl2br です。
{$str|nl2br}
で、勝手に改行してくれます。
| この記事へ | 4.変数の修正子 | コメント (1) | トラックバック (0) | 先頭へ
2006年03月03日
escape:<や>をそのまま表示
< や > を表示しようとする時は、< や > とわざわざ変換してやらないといけないんですが、escapeを使うと、その変換をしてくれます。
$str = "<b>太字</b>";
$smarty = new Smarty;
$smarty->assign("str",$str);
$smarty->display('index.html')
とPHPでは、値をそのまま渡して、テンプレートのほうで
{$str|escape}
と書けば、出力結果は
<b>太字</b>
となります。この種の変換はいちいち面倒なので、かなり重宝します。
escapeしなければ、<b> はそのままタグとして、太字 と表示されます。
| この記事へ | 4.変数の修正子 | コメント (0) | トラックバック (1) | 先頭へ



