strstr

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

strstr文字列が最初に現れる位置を見つける

説明

strstr(string $haystack, string $needle, bool $before_needle = false): string|false

haystack の中で needle が最初に現れる場所を含めてそこから文字列の終わりまでを返します。

注意:

この関数は大文字小文字を区別することに注意してください。 大文字小文字を区別しない検索を行う場合は、stristr() を使用してください。

注意:

もし特定の haystackneedle があるかどうかを調べるだけの場合、 より高速でメモリ消費も少ない strpos() を代わりに使用してください。

パラメータ

haystack

入力文字列。

needle

検索する文字列。

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

before_needle

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

戻り値

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

変更履歴

バージョン 説明
8.0.0 needle は、空文字列を受け入れるようになりました。
8.0.0 needle に数値を渡すことはサポートされなくなりました。
7.3.0 needle に数値を渡すことは非推奨になりました。

例1 strstr() の例

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // @example.com と表示します

$user = strstr($email, '@', true);
echo $user; // name と表示します
?>

参考

  • stristr() - 大文字小文字を区別しない strstr
  • strrchr() - 文字列中に文字が最後に現れる場所を取得する
  • strpos() - 文字列内の部分文字列が最初に現れる場所を見つける
  • strpbrk() - 文字列の中から任意の文字を探す
  • preg_match() - 正規表現によるマッチングを行う