プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.7、HTMLをShift_JISで出力する(3)GET/POSTパラメータを受け取る
FuelPHP1.7、HTMLをShift_JISで出力する(1)
FuelPHP1.7、HTMLをShift_JISで出力する(2)Coreクラスに突っ込む」で
出力HTMLをShift_JISにしたのですが、よく考えたら「出」があれば「入」がありますね。

入力パラメータがShift_JISでやってくるじゃん!?<( ̄◇ ̄;)>

内部処理はUTF-8でやる方針なのです。
入力パラメータをShift_JIS→UTF-8変換してやる必要があります。
大慌てで対応しました。
えっと……取りあえず「Input」クラスあたりを拡張しちゃえば良いかな。

予備知識として、FuelPHPにおけるパラメータの受け取りは

FuelPHP1.6、フォームからのパラメータの受け取りを理解する。

Coreクラスの拡張は

FuelPHP1.7、Coreクラスを拡張する

あたりをご覧ください。

いえいえ、別に宣伝というわけではなくてですね。
そこら辺を理解している前提で書きますよ、ってだけです。
ホントですよ?宣伝とかステマじゃないよ。

それでは本題。

fuel\core\classes\input.php



fuel\app\classes\input.php

としてコピーして、中身をこんな感じにしてφ(--)

■fuel\app\classes\input.php
<?php
class Input extends Fuel\Core\Input
{
    public static function get($index = null, $default = null)
    {
    mb_convert_variables("UTF-8", "SJIS-win", $_GET);
        return parent::get($index, $default);
    }

    public static function post($index = null, $default = null)
    {
    mb_convert_variables("UTF-8", "SJIS-win", $_POST);
        return parent::post($index, $default);
    }

    protected static function hydrate()
    {
        parent::hydrate();
     mb_convert_variables("UTF-8", "SJIS-win", static::$input);

    }
}

「fuel\app\bootstrap.php」で読み込ませてφ(--)

■fuel\app\bootstrap.php
Autoloader::add_classes(array(
    'Input' => APPPATH.'classes/input.php',
));

完了\(--)/

ちなみに最低限のGET/POSTパラメータと「Input::param()」とかしか確認していません。
jsonとかを使うときは「hydrate_raw_input()」か「\Arr::get()」あたりも
拡張する必要が出てくると思います。

間に合わせで申し訳ないのですが、取りあえずそんな感じ(;--)ノ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事