mbregexの初期化について
php を使っていて mbstring 関連の挙動がおかしいと思ったら、私の環境では、デフォルトのエンコード(EUC-JP)とは違うエンコード(UTF-8)を使っていたためだった。
http://wiki.poyo.jp/read/PHP/tips/mbstring/caution_mbregex
php.ini は他のアプリの関係で変えられないので、対象のアプリのみ内部エンコーディングのデフォルト値を httpd.conf やコマンドライン引数で指定することにした。
httpd.conf の設定(/path/to/ ディレクトリにのみ適用):
<Directory /path/to/> php_value mbstring.internal_encoding UTF-8 </Directory>
コマンドラインの引数(-d オプション):
$ php -d mbstring.internal_encoding="UTF-8" hoge.php