PHPで特定の文字列を含むか確認する方法

php

PHPで特定の文字列を含むか確認する方法をご紹介します。

PHP7以下のバージョンでは、strpos()関数を使用します。

strpos()関数は指定した文字列が最初に現れる場所を見つけてくれます。

文字列内の部分文字列が最初に現れる場所を見つける

引用元:PHP公式サイト

 

strposは該当する文字列が見つからなかった場合にはfalseを返してくれます。この性質を利用して検索を行います。

指定した文字列が含まれない場合には以下のように「=== false」で判定し、

 

逆に含まれている場合に処理を行いたい場合には「!== false」を使用して判定を行います。

 

phpにはstrposと同じように検索を行うstrstr()関数があります。

こちらのサイトに記載があるとおり、文字列検索を行うだけであればstrpos()を使用することが推奨されています。

もし特定の haystack に needle があるかどうかを調べるだけの場合、 より高速でメモリ消費も少ない strpos() を代わりに使用してください。

引用元:PHP公式サイト

 

また、PHP8.0からはstr_contains()関数が用意されています。公式サイトの説明通り「指定された部分文字列が、文字列に含まれるかを調べる」関数です。

str_contains — 指定された部分文字列が、文字列に含まれるかを調べる

引用元:PHP公式サイト

 

元々、strposやstrstrは検索用途ではありません。

strposについては、上で説明した通り、falseの判定に「!==」や「===」を用いていますが、これを「!=」や「==」を用いた場合には誤った判断をされる可能性があります。

しっかりとした知識が必要になるので、利用する際には注意が必要です。

その点、str_contains()は検索に特化しているので、PHP8.0以降で検索を行う際にはstr_contains()を使用することをオススメします。

 

Secured By miniOrange
タイトルとURLをコピーしました