【PHP8.x】mb_strstr関数の使い方
作成日: 更新日:
mb_strstr関数は、指定された文字列の中から、特定の文字列が最初に現れる位置から末尾までの部分文字列を抽出する関数です。この関数は、マルチバイト文字を含む文字列を扱う際に非常に重要です。PHPの標準的なstrstr
関数と異なり、mb_strstr
関数はマルチバイト文字を正確に処理できるため、文字化けや意図しない結果を防ぎ、安全で信頼性の高い文字列操作を実現します。
主な引数として、検索対象となる元の文字列と、検索したい部分文字列を指定します。見つかった部分文字列より前の部分を返すか、それ以降の部分を返すか、また大文字・小文字を区別せずに検索するかといった挙動を制御するオプションも利用できます。文字列の文字エンコーディングを明示的に指定する引数も用意されており、これにより様々な言語環境下で一貫した結果を得られます。
この関数は、検索文字列が見つかった場合には、指定された条件に基づいて抽出された部分文字列を返します。もし検索文字列が見つからなかった場合は、false
が返されます。正確な処理のためには、encoding
引数の適切な設定が重要です。ウェブアプリケーション開発など、マルチバイト文字を含む文字列の安全な検索や抽出が必要な場面で活用される、非常に有用な関数です。
基本的な使い方
構文(syntax)
mb_strstr(string $haystack, string $needle, bool $before_needle = false, string $encoding = null): string|false
引数(parameters)
string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null
PHP:
- string $haystack: haystack(検索対象の文字列)を指定する文字列
- string $needle: needle(検索する部分文字列)を指定する文字列
- bool $before_needle = false: trueを指定すると、needleが見つかった場所より前の部分文字列を返します。デフォルトはfalseで、needle以降の部分文字列を返します。
- ?string $encoding = null: 文字エンコーディングを指定する文字列。省略すると内部エンコーディングが使用されます。
戻り値(return)
string|false
指定された文字列の最初の出現箇所から、指定された文字列または文字列の終端までの部分文字列を返します。一致するものが見つからなかった場合は false
を返します。