[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 (長野市稲葉日詰)