Zend Framework Part5
■ このスレッドは過去ログ倉庫に格納されています
0332nobodyさん
2011/08/20(土) 01:50:03.15ID:???既存のコードが全てUTF-8で書かれたPC用サイトを携帯に対応させる作業をしています
最終的に出力される文字コードをUTF-8からSjisにするために以下のようなフィルターを書きました
class Zend_View_Filter_ConvertToSjis
{
public function filter($str)
{
return mb_convert_encoding($str, "Shift_JIS", "UTF-8");
}
}
これをコントローラー内で$this->view->addFilter('ConvertToSjis');と描いてフィルターに追加します
ビュースクリプトは以下のように記述しています
<?php echo $this->partial('mobile/header.phtml'); ?>
いんでっくす
<?php echo $this->partial('mobile/footer.phtml'); ?>
この状態で実行すると「いんでっくす」自体はSjisに変換されて出力されますが、header.phtml内は文字化けしたままです。
試しにfilter関数内でecho "ok";と記述してみると3回OKと表示されます。
コントローラー内のthis->view->addFilter('ConvertToSjis');を消して
header.phtml内で$this->addFilter('ConvertToSjis');と記述するとheader.phtml内の内容はきちんとSjisに変換され、「いんでっくす」は文字化けします
つまりpartialする度にフィルターが呼び出される事が問題のようなのですが、
これを防ぐ方法がわかりません。
何方か一回だけフィルターをかける方法か、代替案をご存知でしたら教えて下さい。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています