Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PHP】正規表現を扱う関数で日本語の時だけ動作がおかしい

日本語文字を含む文字列を扱うときにuオプションを指定し忘れている可能性が高い。例えば、変数$strに「あかね」が含まれているか否かを確認する場合、以下のように条件式を作るとうまくいかない。

if (preg_match('/あかね/', $str) > 0) {
    // 変数$strに「あかね」が含まれている時に行う処理
}

uオプションをつけると正しく動作する。uオプションをつけることで、文字コードUTF-8で扱うことを明示することになる。

if (preg_match('/あかね/u', $str) > 0) {
    // 変数$strに「あかね」が含まれている時に行う処理
}