kawama.jp

SmartyでSJISのテンプレートを使う

カテゴリ: PHP — タグ: , — 2005年8月21日 13:22 — Comments (2)hatebu count

「Smarty SJIS」でググるといくつか有益な情報が引っかかるので、それを見て簡単に対応できました。
もっとも、途中で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");
}
?>

2 Comments »

  1. Smartyのアウトプットフィルタを使ってみる

    ウェブサイト(UTF-8)の登録フォームを携帯端末(SJIS)にも対応させるのを…

    コメント by kawama.jp — 2006年3月10日 @ 13:49

  2. SJISとかEUC-JPでmb_convert_encodingをすると文字化けますよん
    EUC-JPを使うよりはUTF-8を使ったほうが安全な気がする、、、
    http://pentan.info/php/sjiswin_eucjpwin.html

    コメント by pentan — 2009年8月22日 @ 06:31

RSS feed for comments on this post. TrackBack URL

Leave a comment

Copyright (C) 2002 - 2017 kawama All Rights Reserved. — Powered by WordPress