もっとも、途中でSmartyとは1%も関係ないところでつまづいてしまって無駄に時間を使ってしまったのですが。。。
下記の例だと、plugins_dirにprefilter.pre01.phpとpostfilter.post01.phpのファイルを設置。autoload_filtersを使って自動でフィルタがかかるようにしています。
本体
require("/path/to/smarty");
$smarty = new Smarty;
$smarty->template_dir = "/path/to/template_dir";
$smarty->compile_dir = "/path/to/compile_dir";
$smarty->plugins_dir = "/path/to/plugins_dir";
$smarty->cache_dir = "/path/to/cache_dir";
$smarty->autoload_filters = array('pre' => array('pre01'), 'post' => array('post01'));
$smarty->display("/path/to/template.tpl");
prefilter.pre01.php
<?php
function smarty_prefilter_pre01($buff, &$smarty)
{
return mb_convert_encoding($buff,"EUC-JP","SJIS");
}
?>
postfilter.post01.php
<?php
function smarty_postfilter_post01($buff, &$smarty)
{
return mb_convert_encoding($buff,"SJIS","EUC-JP");
}
?>
Smartyのアウトプットフィルタを使ってみる
返信削除ウェブサイト(UTF-8)の登録フォームを携帯端末(SJIS)にも対応させるのを...
SJISとかEUC-JPでmb_convert_encodingをすると文字化けますよん
返信削除EUC-JPを使うよりはUTF-8を使ったほうが安全な気がする、、、
http://pentan.info/php/sjiswin_eucjpwin.html