ます’s Blog - どうでもいい記事100選

どうでもいい記事100選

mb_get_info関数

昨日のですが。
返していない情報がどれくらいあるのか調べ中。。。結構ありました。

  • mbstring.encoding_translation
  • mbstring.language
  • mbstring.detect_order
  • mbstring.substitute_character
  • mbstring.script_encoding
  • mbstring.strict_detection(PHP_4_4 Branchには存在しない)

「mbstring.script_encoding」だけは「--enable-zend-multibyte」でビルドした時だけ値を返すようにしたいと思っています。
ただ、MAIN Branchには「--enable-zend-multibyte」が無い。。。これは見なかった事に。
PHP_INI_MH(OnUpdate_mbstring_substitute_character)」の処理で「MBSTRG(current_filter_illegal_*)」に値を代入していなかったようなので修正予定。
他のも似たような事やったので入れておいて損は無いだろう。。。きっと。
「illegal_chars」の名称は「illegalchars」にする(内部の名称に併せる)つもりです。
ただ、PHP_4_4 Branchには適用できるだろうか。。。変更がデカすぎるので(また)Derickさんから文句が来そう。
不具合報告があると適用しやすいんだけどなぁ。。。誰か報告してくれないかしら。してくれないかしら。
regex_encodingの値は。。。うーん。なんで逆が公開されてないのかなぁ。
とりあえず今回の修正では保留にしよう。できない訳ではないのですが。


ところで、いつから「php.ini」の記載で「none」の文字列は空と等価になるようになったのでしょうか。最初からっぽいけど。。。
ココには「無効な文字を出力しない」例として「mbstring.substitute_character = none」という記載がありますが、これだと駄目でした(デフォルト値「0x3f」半角の?が採用されてしまう)。
「mbstring.substitute_character = "none"」と、ダブルクォートで囲まないと正しく認識してくれませんでした。これって常識?うーん。
でも「php -dmbstring.substitute_character=none」だと正しく認識してくれるんだよなぁ。謎が謎を呼んでいる。。。ただ、MAIN Branchだとコレも正しく認識しない。
後「php -dmbstring.strict_detection=On」で処理した場合、PHP_5_1 Branchでは必ず「Off」になります。正確には(0とか1とか)数値で指定しないと駄目。
逆にMAIN Branchだと(OnとかOffとか)文字でも正しく認識するのですが。。。駄目だ、こりゃ。