smartyでデリミタを変更する方法
Smartyを利用しているとマルチバイト環境ならではの問題に直面することがあります。
カモトラはShift_JISを使う環境でエラーが発生することが何度かありました。
また、テンプレートにJavascriptやCSSが含まれるときにエラーが発生することが多いですね。
毎回気にするのも大変なので、smartyのデリミタを変更してしまう方法がオススメです。
以下ではカモトラがやっている方法をご説明します。
使用するphpファイルで以下のように設定します。
index.php
1 2 3 4 5 6 7 8 |
<?php $smt = new Smarty(); $smt->left_delimiter = '<!--{'; $smt->right_delimiter = '}-->'; $smt->assign('name', 'カモトラ'); $smt->display('index.html'); ?> |
デリミタは「<!–{」と「}–>」です。
「left_delimiter」と「right_delimiter」の箇所で設定しています。
テンプレートファイルは以下のようにします。
index.html
1 |
ようこそ <!--{$name}--> さん |
参考URL:http://www.smarty.net/docsv2/ja/language.escaping.tpl
phpファイルでデリミタを変更し、htmlファイルでその設定を使用する。
簡単にできる変更なので是非やってみてください。