大文字小文字を区別しない strstr

# stristr

(PHP 4, PHP 5, PHP 7, PHP 8)

stristr — 大文字小文字を区別しない strstr()

### 説明

function stristr(string `$haystack`, string `$needle`, bool `$before_needle` = `false`): string|false

`haystack` において `needle` が最初に見つかった位置を含めてそこから最後までを返します。

### パラメータ

`haystack`

  検索対象の文字列。

`needle`

  検索する文字列。

  PHP 8.0.0 より前のバージョンでは、`needle` が文字列でない場合、 数値に変換され、文字のコードポイントとして扱われていました。 この振る舞いは PHP 7.3.0 以降では推奨されないので、 この機能を使用しないことを強く推奨します。 意図する動作に応じて、 `needle` を string に明示的にキャストするか、 明示的に chr() 関数を呼び出すべきでしょう。
`before_needle`

  `true` にすると、stristr() の戻り値は、`haystack` の中で最初に `needle` があらわれる箇所より前の部分となります (needle は含めません)。

`needle` および `haystack` は大文字小文字を区別せずに評価されます。

### 戻り値

マッチした部分文字列を返します。`needle` が見つからない場合は `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.2.0 | ケースフォールディングは、setlocale() で設定されたロケールに依存しなくなりました。 ASCII のケースフォールディングのみが行われます。 ASCII でないバイト列は、バイト値として比較されます。
8.0.0 | `needle` は、空文字列を受け入れるようになりました。
8.0.0 | `needle` に数値を渡すことはサポートされなくなりました。
7.3.0 | `needle` に数値を渡すことは非推奨になりました。

### 例

例1 stristr() の例

    <?php
      $email = 'USER@EXAMPLE.com';
      echo stristr($email, 'e'), PHP_EOL; // outputs ER@EXAMPLE.com
      echo stristr($email, 'e', true), PHP_EOL; // outputs US
    ?>

例2 文字列が見つかるかどうかをテストする

    <?php
      $string = 'Hello World!';
      if (stristr($string, 'earth') === FALSE) {
        echo '"earth" not found in string';
      }
    // 出力は "earth" not found in string となります
    ?>

### 注意

> 注意: この関数はバイナリデータに対応しています。

### 参考

- strstr() - 文字列が最初に現れる位置を見つける
- strrchr() - 文字列中に文字が最後に現れる場所を取得する
- stripos() - 大文字小文字を区別せずに文字列が最初に現れる位置を探す
- strpbrk() - 文字列の中から任意の文字を探す
- preg_match() - 正規表現によるマッチングを行う

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open