おじさんエンジニアの日記

おじさんエンジニアがWeb関連の技術、ガンプラのことを書くブログ

mb_ereg_replaceの注意点

Webで表示しているPHPの置換処理をバッチに持って行って動かしたら、
うまく置換されなかった。

原因を調べると
mb_regex_encoding()がEUCをはいていた・・・。(本来はUTF-8の想定)
EUCで置換しようとしていたのね。
処理前に以下のコードを追加して解決しました。

mb_regex_encoding('UTF-8');

mb_internal_encoding()でUTF-8を設定したいたんだけどな・・・。

mb_regex_encoding()は、
現在の正規表現用のエンコーディングを文字列として返す。
引数に文字コードを入れてやればその文字列で正規表現をチェックしてくれます