日本語文字を含む文字列を扱うときにuオプションを指定し忘れている可能性が高い。例えば、変数$strに「あかね」が含まれているか否かを確認する場合、以下のように条件式を作るとうまくいかない。
if (preg_match('/あかね/', $str) > 0) { // 変数$strに「あかね」が含まれている時に行う処理 }
uオプションをつけると正しく動作する。uオプションをつけることで、文字コードをUTF-8で扱うことを明示することになる。
if (preg_match('/あかね/u', $str) > 0) { // 変数$strに「あかね」が含まれている時に行う処理 }