stristr

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

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

説明

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.0.0 needle に数値を渡すことはサポートされなくなりました。
7.3.0 needle に数値を渡すことは非推奨になりました。

例1 stristr() の例

<?php
  $email 
'USER@EXAMPLE.com';
  echo 
stristr($email'e'); // 出力は ER@EXAMPLE.com となります
  
echo stristr($email'e'true); // 出力は US となります
?>

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

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

例3 文字列以外の needle の指定

<?php
  $string 
'APPLE';
  echo 
stristr($string97); // 97 = 小文字の a
// 出力は APPLE となります
?>

注意

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

参考

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

関連キーワード:  大文字, 区別, 小文字, strstr, stristr, haystack, string, 最初, 数値, 関数