stripos 是 PHP 中的一个函数,用于查找一个字符串在另一个字符串中第一次出现的位置,且不区分大小写。以下是 stripos 函数的详细说明:

函数定义

stripos 函数返回在字符串 haystackneedle 首次出现的数字位置。与 strpos 函数不同,stripos 不区分大小写。

语法

int|false stripos(string $haystack, mixed $needle [, int $offset = 0 ])

参数

  • haystack:要搜索的字符串。

  • needle:要查找的字符串。在 PHP 8.0.0 之前,如果 needle 不是字符串,则会将其转换为整数并应用为字符的序数值。从 PHP 7.3.0 开始,此行为已被弃用,并且强烈建议不要依赖它。根据预期行为,needle 应显式转换为字符串,或者应执行对 chr() 的显式调用。

  • offset(可选):如果指定,搜索将从字符串开头算起的字符数开始。如果偏移量为负数,则搜索将从字符串末尾开始计数的字符数开始。

返回值

  • 返回 needle 存在于 haystack 字符串开始的位置(与偏移量无关)。字符串位置从 0 开始,而不是从 1 开始。

  • 如果未找到 needle,则返回 false

版本更新

  • PHP 8.2.0:大小写转换不再依赖于使用 setlocale() 设置的区域。只会进行 ASCII 大小写转换。非 ASCII 字节将按其字节值进行比较。

  • PHP 8.0.0:needle 现在接受空字符串。

  • PHP 8.0.0:不再支持将 int 作为 needle 传递。

  • PHP 7.3.0:将 int 作为 needle 传递已被弃用。

  • PHP 7.1.0:添加了对负 offset 的支持。

示例


注意事项

  • 此函数可能返回布尔值 false,但也可能返回一个非布尔值,该值在布尔上下文中评估为 false。因此,使用 === 操作符来测试此函数的返回值是必要的。

  • 此函数是二进制安全的。