人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPモジュールのSmartyを使用していて、PHPとテンプレートのエンコードをEUCで保存して、出力をShift-Jisにしたいのですが、どの様にすればいいでしょうか?

●質問者: makocan
●カテゴリ:インターネット ウェブ制作
✍キーワード:EUC JIS PHP Smarty エンコード
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● arcana
●27ポイント

エンコード用関数を自前して、出力の際に利用すれば良いかと思います。

あまりテストしてませんが、mb_convert_encodingで変換しちゃうのが簡単かな、と思います。

// SJIS Encode 用関数

function Encode_euc2sjis ($tpl_output, &$smarty) {

$tpl_output = mb_convert_encoding($tpl_output, 'SJIS', 'EUC-JP');

return $oput;

}

// 使用方法

$smarty->register_outputfilter("Encode_euc2sjis");


URL はダミーです:http://www.itmedia.co.jp/enterprise/0402/19/epn01.html


2 ● Paul
●27ポイント

fetch()メソッドを使うしかないのではないでしょうか?

http://sky.freespace.jp/smarty/SmartyManual_2-6-3J_html/api.fetc...

上記ページのサンプルを改造して


$output = $smarty->fetch("index.tpl");

$sjis_out = mb_convert_encoding($output, 'SJIS', 'EUC-JP');

echo $sjis_out;


3 ● heppokoA
●26ポイント

http://jp.php.net/manual/ja/function.ob-start.php

(Smartyの機能を使わずですが)Output Bufferingも使えると思います。

function my_callback($buffer)
{
 return mb_convert_encoding($buffer,"Shift_JIS","EUC-JP");
}

ob_start("my_callback");
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ