kawama.jp

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

カテゴリ: PHP — タグ: , , — 2006年3月10日 13:38 — Comments (1)hatebu count

ウェブサイト(UTF-8)の登録フォームを携帯端末(SJIS)にも対応させるのをやろうと思い、Smartyのアウトプットフィルタを使ってみた。

こんな感じ
$smarty->register_outputfilter("filterSjis");
function filterSjis($buff, &$smarty)
{
return mb_convert_encoding($buff,"SJIS","UTF-8");
}

プリフィルタとポストフィルタはテンプレートに記述されている文字列を変換するだけで、DBなどから動的に出力する文字列には効かない。アウトプットフィルタの場合はブラウザへ出力する直前のデータをフィルタしてくれる。

これで無事解決。。。。と思ったのだけれど、このままでは出力されるヘッダがUTF-8のままのため、文字化けが発生してしまう。さて、どうしたもんか、、、と思いつつGoogleで調べてみたら「ini_set(“default_charset”, “Shift_JIS”);」を入れれば解決できることがわかった。

これが最終形
$smarty->register_outputfilter("filterSjis");
ini_set("default_charset", "Shift_JIS");
function filterSjis($buff, &$smarty)
{
return mb_convert_encoding($buff,"SJIS","UTF-8");
}

1件のコメント »

  1. Smarty インストール

    PHPのテンプレートエンジンである「Smarty(スマーティ)」をインストールした。

    やり方は、以下の手順

    1.

    コメント by Shoulder.jp — 2006年6月1日 @ 15:55

RSS feed for comments on this post. TrackBack URL

Leave a comment

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