いままで動作していたmb_ereg()によるマルチバイト文字(漢字等)のマッチが動作しなくなった
…と思ったら、「正規表現用のエンコーディング」のデフォルト値が違っていたみたい。mb_regex_encoding()で指定したら、動作した。現在のコードの構成だと、大雑把にはこんな書き方で対処可能。
<!-- main.html: GET/POST 変数で動作するスクリプトを変える --> <?php mb_regex_encoding("SJIS"); // add this line [interpret GET/POST variables] ?><HTML> <HEAD> </HEAD> <BODY><?php [include PHP script(s) according to the input variables] ?></BODY> </HTML>
参考
- mb_eregで日本語検索すると・・ - アシアルブログ
- PHP: mb_ereg - Manual:「注意:内部エンコーディングあるいは mb_regex_encoding() で指定した文字エンコーディングを、 この関数の文字エンコーディングとして使用します。」と記述してある。