【PHP8.x】strstr関数の使い方

作成日: 更新日:

strstr関数は、ある文字列(haystack)の中から特定の文字列(needle)を検索し、その見つかった部分以降の文字列を返す関数です。この関数は、文字列の一部を抽出したり、特定の区切り文字以降の情報を取得したりする際に役立ちます。

第一引数には検索の対象となる元の文字列を、第二引数にはその文字列内で検索したい文字列を指定します。オプションの第三引数before_needletrueを指定すると、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 を返します。

【PHP8.x】strstr関数の使い方 | いっしー@Webエンジニア