【PHP】文字列を検索するstrstr()とstristr()の使い方

こんにちは!CODE CLUB965のKです!

今回はPHPで文字列の中で特定の文字があるかないかを判断する時の方法について書こうと思います。

文字列を検索する方法には以下の2つの関数があります。
それぞれの違いをざっとまとめておきます。

・strstr()
 アルファベットの大文字、小文字を区別して検索

・stristr()
 アルファベットの大文字、小文字を区別せずに検索

それぞれの具体的な使い方をみていきましょう。

strstr()

strstr()はアルファベットの大文字と小文字を区別せずに検索する場合に使います。

基本構文は以下の通りです。(第3引数は省略可能)

strstr(対象の文字列, 検索したい文字列);

返り値ですが、最初に見つかった位置を含めてそこから最後までを返します。

具体例です。

<?php
  $email = 'CODE_CLUB@sample.com';

  echo strstr($email, '@');
  # 実行結果は、「@sample.com」となります。

また、第3引数を「true」にすることで検索する文字の前の部分を出力することもできます。

<?php
  $email = 'CODE_CLUB@sample.com';

  echo strstr($email, '@', true);
  # 実行結果は、「CODE_CLUB」となります。

さらに文字列を含んでいるかどうかも判定できます。

<?php
  $email = 'CODE_CLUB@sample.com';

  if(strstr($email, 'code'')){
    echo "該当あり";
  }else{
    echo "該当なし";
  }

上記の場合は、実行結果が「該当あり」となります。

stristr()

stristr()はアルファベットの大文字と小文字を区別して検索する場合に使います。

基本構文は以下の通りです。(第3引数は省略可能)

stristr(対象の文字列, 検索したい文字列);

こちらも基本的な使い方は strstr() と同じですが、大文字と小文字を区別することに注意しましょう!

<?php
  $email = 'CODE_CLUB@sample.com';

  echo strstr($email, 'B');
  # 実行結果は、「B@sample.com」となります。

ちなみに小文字の「b」 だと false が返ります。

また、第3引数を「true」にすることで検索する文字の前の部分を出力するのは strstr() と同じです。

以下のように大文字と小文字を区別して文字が含まれているかどうか判定もできます。

<?php
  $string = 'CODE CLUB 965';
  if(stristr($string, 'code') === FALSE) {
    echo '"code" not found in string';
  }
  # 実行結果は、「"code" not found in string」となります。

最後に

今回は、文字列の検索について、strstr() と stristr() について解説しました。

簡単に文字列を検索できるので便利ですね!

便利な関数は知れば知るほどコーディングスピードの向上やコードの可読性も上がるので、どんどん使って慣れていきましょう!

それでは、また!

Follow me!