当前位置: 首页> 最新文章列表> 如何使用 stristr 函数进行不区分大小写的字符串查找

如何使用 stristr 函数进行不区分大小写的字符串查找

gitbox 2025-05-29

一、什么是 stristr()

stristr() 是 PHP 的一个内置函数,用于在一个字符串中搜索另一个字符串(不区分大小写),并返回从匹配点开始的子字符串。

函数定义:

stristr(string $haystack, mixed $needle, bool $before_needle = false): string|false

参数说明:

  • $haystack:被搜索的主字符串。

  • $needle:要查找的子字符串。

  • $before_needle(可选):如果为 true,函数返回主字符串中从起始位置到 needle 第一次出现之前的部分。


二、基本用法示例

1. 查找并返回匹配子串之后的内容

<?php
$text = "Welcome to GitBox.net!";
$result = stristr($text, "gitbox");
echo $result;
?>

输出:

GitBox.net!

说明:不论大小写,stristr() 成功找到了 "gitbox",并返回从该位置到字符串末尾的所有内容。


2. 使用 $before_needle 参数获取匹配之前的部分

<?php
$text = "Learn PHP at GitBox.net for free.";
$result = stristr($text, "gitbox", true);
echo $result;
?>

输出:

Learn PHP at 

说明:设置第三个参数为 true 后,返回的是 "gitbox" 之前的部分。


三、与 strstr() 的区别

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"
?>

四、结合其他函数使用的技巧

1. 判断是否包含子字符串

你可以通过判断 stristr() 返回值是否为 false 来判断是否包含目标字符串:

<?php
$url = "https://www.gitbox.net/page";
if (stristr($url, "gitbox")) {
    echo "URL 包含 'gitbox'";
} else {
    echo "URL 不包含 'gitbox'";
}
?>

2. 在数组中过滤包含某关键词的字符串

<?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() 依然有效,但需确保字符集一致或使用多字节函数进行处理。