• 締切済み

smartyについて

よくあるパターンですが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); } }

みんなの回答

  • qaqa013
  • ベストアンサー率27% (17/62)
回答No.1

まさかと思うけど携帯とPC向けと同じテンプレートを利用しているのか? プログラムの処理を見る限りそう見えるんだけど 携帯なら携帯向けにテンプレート作ってそれを半角で作っておけば良いだけだろ。

dcx147
質問者

お礼

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

関連するQ&A