【PHP8.x】strstr関数の使い方
strstr関数は、ある文字列(haystack
)の中から特定の文字列(needle
)を検索し、その見つかった部分以降の文字列を返す関数です。この関数は、文字列の一部を抽出したり、特定の区切り文字以降の情報を取得したりする際に役立ちます。
第一引数には検索の対象となる元の文字列を、第二引数にはその文字列内で検索したい文字列を指定します。オプションの第三引数before_needle
にtrue
を指定すると、needle
が見つかった場合、needle
より前の部分の文字列を返します。この引数を省略するかfalse
を指定した場合、needle
が見つかれば、そのneedle
を含むそれ以降の文字列を返します。
検索対象の文字列内にneedle
が見つからなかった場合、この関数はfalse
を返します。strstr
関数は、大文字と小文字を区別して検索を行いますので注意が必要です。例えば、「Hello」と「hello」は異なるものとして扱われます。大文字小文字を区別せずに検索を行いたい場合は、stristr
関数を使用してください。
また、PHP 8.0.0以降のバージョンでは、第二引数needle
に空文字列(""
)を指定すると、E_WARNING
という警告が発行され、空文字列が戻り値として返されます。例えば、メールアドレスのドメイン部分を抽出したり、ファイルパスからファイル名を特定したりするなど、文字列操作の基本として幅広い場面で利用されます。
基本的な使い方
構文(syntax)
<?php
// 構文: strstr(検索対象の文字列, 検索する文字列);
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 結果: @example.com
?>
引数(parameters)
string $haystack, string $needle, bool $before_needle = false
- string $haystack: 検索対象の文字列を指定します。
- string $needle: 検索したい部分文字列を指定します。
- bool $before_needle = false: trueを指定すると、$needleよりも前の部分文字列を返します。デフォルトはfalseで、$needle以降の部分文字列を返します。
戻り値(return)
string|false
文字列 haystack の中で、文字列 needle が最初に出現する位置から文字列の最後までを返します。needle が見つからない場合は false を返します。