検索

キーワード


【PHP】特定の文字列を含むかのチェック・検索(strpos,strstr,preg_match)

  • 公開日:2020-09-14 17:50:30
  • 最終更新日:2021-02-03 10:59:54

文字列の検索

この記事では、PHPでの文字列検索について解説していきます。

PHPで文字列検索するには、strpos, strstr, preg_matchの3つの関数を利用します。

strpos

strposは検索対象の文字列に検索する文字列が、何文字目に存在するかを戻り値として返します。

検索した文字列が見つからなかった場合はFALSEを返します。

strpos(検索対象の文字列, 検索する文字列 [, 開始位置] )


メールアドレスの"@"が、何文字目に含まれているのかを検索してみます。

<?php

echo strpos('hogehoge@test.com', '@');

?>

0から数えられるため、検索結果は8と表示されます。

strstr

strstrはマッチした文字列より後ろの文字列を戻り値として返します。

検索した文字列が見つからなかった場合はFALSEを返します。

strstr(検索対象の文字列, 検索する文字列)

メールアドレスの"@"を検索し、"@"より後ろの文字列を表示してみます。

<?php

echo strpos('hogehoge@test.com', '@');

?>
@test.com


また、"@"より前の部分を表示したい場合は、第3引数にTRUEを指定します。

<?php

echo strpos('hogehoge@test.com', '@', TRUE);

?>
hogehoge


preg_match

preg_matchは正規表現による検索を行います。

検索対象の文字列から正規表現にマッチ文字列が存在するかチェックします。

戻り値はマッチした文字列がある場合は「1」、ない場合は「0」を返します。

preg_match(正規表現 , 検索対象の文字列 [,マッチした文字列の配列])

検索対象のメールアドレスに、"@test.com"のドメインが含まれているかをチェックします。

<?php

if (preg_match("/@test.com/", "hogehoge@test.com")) {
  echo "マッチしました。";
} else {
  echo "マッチしませんでした。";
}

?>
マッチしました。


まとめ

文字列検索の3つの方法についてまとめてみました。

特に、preg_matchは正規表現のバリデーション処理を行う際に重要な関数なので、しっかり使い方を覚えて使いこなせるようにしましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

よく読まれている記事