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

作成日: 更新日:

stripos関数は、文字列の中から、指定された部分文字列が最初に現れる位置を、大文字と小文字を区別せずに見つけ出す関数です。この関数は、特定の文字やフレーズがテキスト内のどこにあるかを知りたい場合に特に役立ちます。

この関数を使用する際は、まず検索対象となる元の文字列(haystack)を指定します。次に、その文字列内で探したい部分文字列(needle)を引数として渡します。さらに、オプションとして検索を開始する位置(offset)を指定することも可能です。このoffsetを指定することで、文字列の途中から検索を開始し、特定の範囲内でのみ部分文字列を探すことができます。

検索が成功した場合、stripos関数は部分文字列が最初に現れる位置を整数値で返します。この位置は文字列の先頭を0として数えられ、例えば文字列の先頭で見つかった場合は0が返されます。もし部分文字列が見つからなかった場合は、ブール値のfalseを返します。したがって、この関数の戻り値を利用して条件分岐を行う際には、0falseを明確に区別するために、厳密な比較演算子(===)を使用することが重要です。

PHPには類似の機能を持つstrpos関数も存在しますが、strposが大文字と小文字を厳密に区別して検索するのに対し、striposは大文字と小文字を区別しないという点が最大の相違点です。この特性により、ユーザーが入力したキーワードが大文字・小文字のどちらで記述されていても柔軟にマッチさせたいような、ウェブサイトのコンテンツ検索や入力検証などの場面で非常に重宝されます。

基本的な使い方

構文(syntax)

<?php
$text = "Hello, PHP World!";
$search_string = "php"; // 大文字小文字を区別しない検索

$position = stripos($text, $search_string);

// 検索文字列が見つかった場合はその位置 (0から始まるインデックス)、見つからない場合は false を返します。
if ($position !== false) {
    echo "検索文字列が見つかった位置: " . $position;
} else {
    echo "検索文字列は見つかりませんでした。";
}
?>

引数(parameters)

string $haystack, string $needle, int $offset = 0

  • string $haystack: 検索対象の文字列
  • string $needle: 検索する文字列
  • int $offset = 0: 検索を開始する位置(デフォルトは0)

戻り値(return)

int|false

文字列内で、大文字・小文字を区別せずに検索した最初の出現位置のインデックスを返します。見つからなかった場合は false を返します。

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