初めて自分の家と他人の家が違う、と意識した時

よくあるパターンですがsmartyを継承した独自のクラスをつくっています。
携帯からのアクセスであればパケ代節約のために全角カタカナを半角にしているのですが
フォームに入力された全角カタカナも半角になってしまいます。

下記のソースで実行しているので当たり前の結果なのですがPOSTされた値を除き変換するには
どのような方法がありますか?

class MySmarty extends Smarty
{
public function display($template)
{
// キャリアチェック
if(携帯であれば) {
// 変数に格納
$output = parent::fetch($template);
// 全角カナを半角カナに変換
$output = mb_convert_kana($output, 'aksV', 'UTF-8');
// SJISに変換
$output = mb_convert_encoding($output, 'SJIS-win', 'UTF-8');
// 出力
echo $output;
} else {
// 出力(携帯以外)
parent::display($template);
}
}

A 回答 (1件)

まさかと思うけど携帯とPC向けと同じテンプレートを利用しているのか?


プログラムの処理を見る限りそう見えるんだけど


携帯なら携帯向けにテンプレート作ってそれを半角で作っておけば良いだけだろ。
    • good
    • 0
この回答へのお礼

テンプレートは携帯用に別にありますが確かに最初から半角で作ればクリアできますね~
例えばDBの値を表示する場合など表示箇所に半角変換する必要があるので一括で楽に
行いたいと思っておりこのようにしてました。

お礼日時:2010/04/06 22:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!