stristr() 是 PHP 的一个内置函数,用于在一个字符串中搜索另一个字符串(不区分大小写),并返回从匹配点开始的子字符串。
函数定义:
stristr(string $haystack, mixed $needle, bool $before_needle = false): string|false
参数说明:
$haystack:被搜索的主字符串。
$needle:要查找的子字符串。
$before_needle(可选):如果为 true,函数返回主字符串中从起始位置到 needle 第一次出现之前的部分。
<?php
$text = "Welcome to GitBox.net!";
$result = stristr($text, "gitbox");
echo $result;
?>
输出:
GitBox.net!
说明:不论大小写,stristr() 成功找到了 "gitbox",并返回从该位置到字符串末尾的所有内容。
<?php
$text = "Learn PHP at GitBox.net for free.";
$result = stristr($text, "gitbox", true);
echo $result;
?>
输出:
Learn PHP at
说明:设置第三个参数为 true 后,返回的是 "gitbox" 之前的部分。
stristr() 是 strstr() 的不区分大小写版本。strstr() 区分大小写,而 stristr() 忽略大小写。
示例比较:
<?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"
?>
你可以通过判断 stristr() 返回值是否为 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
)
stristr() 返回的是字符串或 false,所以在使用时需要特别注意对 false 的判断,避免将其当作字符串处理。
如果目标字符串中含有非英文字符,stristr() 依然有效,但需确保字符集一致或使用多字节函数进行处理。