[PHP-dev 1221] Re: mb_get_info()を拡張してみた

Tadashi Jokagi ml @ elf.no-ip.org
2006年 2月 12日 (日) 04:11:33 JST


      上鍵です.こんにちは.
      廣川さんありがとうございます.ちなみに「すべて取得」しかできな
    いので,任意に取得のパッチを作ろうとしたのですが,まだスキル不十
    分で実装できませんでした.できたら改めて提案したいと思います.

      さらに中途半端のまま気になる関数があったので,調べていたのです
    が,iconv のエンコーディング指定をする iconv_set_encoding() があ
    りますが,これは複数の内部変数を一度に設定できませんが,エンコー
    ディングを取得する iconv_get_encoding() は「"all"」を渡すことで
    すべてのエンコーディングを取得できます.

http://php.net/iconv_set_encoding
http://php.net/iconv_get_encoding

    で,すべて設定できるように引数に「"all"」を受け付けるようにしてみ
    ようと思ったのですが,コードを見て悩んでしまいました.現状のコー
    ドは


        if(!strcasecmp("input_encoding", type)) {
                retval = zend_alter_ini_entry("iconv.input_encoding", sizeof("iconv.input_encoding"), charset, charset_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME);
        } else if(!strcasecmp("output_encoding", type)) {
                retval = zend_alter_ini_entry("iconv.output_encoding", sizeof("iconv.output_encoding"), charset, charset_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME);
        } else if(!strcasecmp("internal_encoding", type)) {
                retval = zend_alter_ini_entry("iconv.internal_encoding", sizeof("iconv.internal_encoding"), charset, charset_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME);
        } else {
                RETURN_FALSE;
        }

    となっているので,zend_alter_ini_entry()を 3 行書くか〜と思ったの
    ですが,返り値が正しく返せない可能性があります(3 つすべて成功しな
    かった場合)こういった場合,PHP 的には今までどういう実装をしていた
    のでしょうか?

#同じ値を設定だから 1 つ目の返り値だけ見るという考えもできなくはない
 ですが…

-- 
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Setagaya city mailto:elf @ elf.no-ip.org
YokukitanaII http://elf.no-ip.org/
Yokukitablog http://blog.poyo.jp/
Yokukitawiki http://wiki.poyo.jp/


PHP-dev メーリングリストの案内