phpで文字列が含まれるか確認する関数はいくつかある
Qiitaの記事を参考にした。
最も処理速度が早いのはstrpos
最も処理速度が早いのはstrpos()関数らしい。
参考リンク先に速度比較表を掲載いただいている記事がある。
0.01秒差ぐらいなので、小さいプログラムならそんなに気にすることないのかな?
と思いつつもstrpos()を優先的に採用させていただきます。。。
例)
if(strpos($mojiretsu, 'ちぇっくするもじれつ') !== false){
echo '含まれとったで!';
}
mb_strposとの違いは?
strpos()と、mb_strpos()って何が違うの?
と思って、調べた。
strpos関数は日本語などのマルチバイト文字列も検索することができますが、正しい検索位置を返してくれません。
https://www.sejuku.net/blog/25441
っちゅーことらしい。
検索位置が必要なければ(文字列が含まれるかの判断だけなら)マルチバイト文字検索でも、strposを使うでも良さそうではあるが、一応mb_strpos使っといたほうがよいな。(後に位置情報必要に改修したときとかのために)
正規表現が使いたいならpreg_match
正規表現が使いたいならpreg_match()関数を使う。
例)
if (preg_match('/^.*ちぇっくするもじれつ.*$/', $mojiretsu);) {
echo '含まれとったで!';
}
コメント