[PHP-users 13478] Re: mbstring.encoding_translationの設定

桝形 誠二 php-users@php.gr.jp
Fri, 21 Feb 2003 11:26:43 +0900


桝形です。

更に調べた結果です。

> > と、していて、他は全てLocal Valueに反映されますが、
> > mbstring.encoding_translationだけは反映されないようです。
> 
> httpd.confのVirtualHost内で、
> 
> php_value mbstring.encoding_translation On
> 
> と、指定をすると、Local Valueには、Offと表示がされます。
> 
> php.iniを、
> 
> mbstring.encoding_translation Off
> 
> として、
> 
> httpd.confのVirtualHost内で、
> 
>   php_value mbstring.language             Japanese
>   php_value mbstring.internal_encoding    EUC_JP
>   php_value mbstring.script_encoding      SJIS
>   php_value mbstring.http_output          SJIS
>   php_value mbstring.encoding_translation On

  php_value mbstring.encoding_translation 1

と、すると表示も問題なく"On"になる事ができました。

何故、1でないと設定が反映されないのかを調べています。
php.iniでは、

mbstring.encoding_translation On

としたら、1と解釈されて、MBSTRG(encoding_translation)には、
Setされるけど、httpd.confのVirtualHost内で、

php_value mbstring.encoding_translation On

としたら、1ではなく、そのまま値が渡されるという事でしょうか?

動きをしてはそんな感じ?なのですが、だとしたら何故表示は反映
されないが、動作はするのでしょう?

となると、

MBSTRG(encoding_translation)には1がSetされているが、
DISPLAY_INI_ENTRIESで出力しているもの、

main/php_ini.c:139〜

	zend_hash_apply_with_argument(EG(ini_directives), (apply_func_arg_t) php_ini_displayer, (void *) (long) module_number TSRMLS_CC);

の、(apply_func_arg_t) php_ini_displayerにSetされている値は
違うからという事?

表示の部分を参照するタイミングと、実際に動作する時のタイミング
の差異からなのでしょうか?

大変お手数ですが、ご教授願います。
_______________________

  桝形 誠二( Masugata Seiji )
  E-Mail : s.masugata@digicom.dnp.co.jp

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄