strristr()は、 1つの文字列で別の文字列(ケースの鈍感)を検索し、一致するポイントから始まるサブストリングを返すPHPに組み込まれた関数です。
関数定義:
stristr(string $haystack, mixed $needle, bool $before_needle = false): string|false
パラメーター説明:
$ haystack :検索されているメイン文字列。
$針:見つかるサブストリング。
$ before_needle (オプション): trueの場合、関数はメイン文字列の部分を開始位置から針の最初の発生の前に返します。
<?php
$text = "Welcome to GitBox.net!";
$result = stristr($text, "gitbox");
echo $result;
?>
出力:
GitBox.net!
説明:ケースに関係なく、 StrStr()は「gitbox」を正常に見つけて、その場所から文字列の端まですべてを返します。
<?php
$text = "Learn PHP at GitBox.net for free.";
$result = stristr($text, "gitbox", true);
echo $result;
?>
出力:
Learn PHP at
説明:3番目のパラメーターをtrueに設定した後、「gitbox」の前の部分が返されます。
strristr()は、 strstr()の症例感受性バージョンです。 strstr()はケースに敏感ですが、 strstr()はケースを無視します。
比較の例:
<?php
$text = "GitBox.net Official Site";
// ケースに敏感な検索
$result1 = strstr($text, "gitbox");
var_dump($result1); // bool(false)
// 不ケースに敏感な検索
$result2 = stristr($text, "gitbox");
var_dump($result2); // string(14) "GitBox.net Official Site"
?>
strristr()の返品値がfalseであるかどうかを判断することにより、ターゲット文字列が含まれるかどうかを判断できます。
<?php
$url = "https://www.gitbox.net/page";
if (stristr($url, "gitbox")) {
echo "URL 含む 'gitbox'";
} else {
echo "URL 不含む 'gitbox'";
}
?>
<?php
$data = ["Welcome to GitBox.net", "Visit example.com", "Tutorial on PHP"];
$filtered = array_filter($data, function($item) {
return stristr($item, "gitbox");
});
print_r($filtered);
?>
出力:
Array
(
[0] => Welcome to GitBox.net
)
strristr()は文字列またはfalseを返しますので、それを使用するときにfalseの判断に特別な注意を払う必要があります。
ターゲット文字列に英語以外の文字が含まれている場合、 Strristr()はまだ有効ですが、文字セットが一貫していることを確認するか、処理にマルチバイト関数を使用する必要があります。