【PHP8.x】stripos関数の使い方
stripos関数は、文字列の中から、指定された部分文字列が最初に現れる位置を、大文字と小文字を区別せずに見つけ出す関数です。この関数は、特定の文字やフレーズがテキスト内のどこにあるかを知りたい場合に特に役立ちます。
この関数を使用する際は、まず検索対象となる元の文字列(haystack
)を指定します。次に、その文字列内で探したい部分文字列(needle
)を引数として渡します。さらに、オプションとして検索を開始する位置(offset
)を指定することも可能です。このoffset
を指定することで、文字列の途中から検索を開始し、特定の範囲内でのみ部分文字列を探すことができます。
検索が成功した場合、stripos
関数は部分文字列が最初に現れる位置を整数値で返します。この位置は文字列の先頭を0
として数えられ、例えば文字列の先頭で見つかった場合は0
が返されます。もし部分文字列が見つからなかった場合は、ブール値のfalse
を返します。したがって、この関数の戻り値を利用して条件分岐を行う際には、0
とfalse
を明確に区別するために、厳密な比較演算子(===
)を使用することが重要です。
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 を返します。