[PHP-dev 352] Re: multipart/form-data

Tsukada Takuya php-dev@php.gr.jp
Mon, 6 May 2002 17:57:40 +0900 (JST)


こんにちは、塚田です。

大垣 さん:
> 
> 4.3.0からmbstring, mbstr-enc-trans, mbregexがデフォ
> ルトで有効なるように変更しました。私も、どちらにするべきか悩み
> ましたが、ビルドによって機能が違うのは好まないので有効にしてお
> きました。
> 
> per dir設定で自動変換を無効にする事もできると思いますが、全て
> のSAPIで有効ではないので良くないかもしれません。
> 
> mb_convert_variables("UTF-8", "auto", $_REQUEST);
> require 'multibyte_class_implement';
> 
> などとスクリプトレベルでの対処のを推奨して、自動変換機能はオプ
> ションにする、と言う事でよろしいでしょうか?

それが良いと思います。
すべての入出力のつじつまを合わせるのも大変だし、
特定の条件以外では、かえって使いづらくなってしまう
こともあると思います。

さらに、以下の関数についてはスクリプトレベルのライブラリ
へ移動するのが良いと思います。

   mb_http_input()
   mb_http_output()
   mb_detect_order()
   mb_parse_str()
   mb_output_handler()
   mb_encode_mimeheader()
   mb_decode_mimeheader()
   mb_send_mail()

これらをまとめて、マルチバイト文字処理クラスとして
実装し、必要なレベルに応じて、

  require 'multibyte_class_standard_implement';

    - マルチバイト文字処理クラス定義のみ

  require 'multibyte_class_fullauto_implement';

    - HTTP入出力の変換が自動的に行われる

  require 'multibyte_class_classic_implement';

    - mb_http_input()などの旧関数定義を含む

と使い分けられるようにしたいです。
 C で実装するのは、実現が困難だったり、性能がでない
もに限るという方針にしませんか?

mbstringモジュールにたくさんの状態を持たせると、
必要かどうか分からない初期化処理とかが、どんどん増えて
しまいます。


以上は、PHP5以降での話です。

-- 
sender: Tsukada Takuya (塚田 卓也)
town: inaba hizume, Nagano City (長野市稲葉日詰)