検索

キーワード


目次

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

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

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

文字列の検索

この記事では、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によるフロントエンド開発。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事