PHP Conference Japan 2024

mb_stristr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stristr查找另一个字符串中不区分大小写的第一个出现位置

描述

mb_stristr(
    字符串 $haystack,
    字符串 $needle,
    布尔值 $before_needle = false,
    ?字符串 $encoding = null
): 字符串|false

mb_stristr() 查找 haystackneedle 的第一次出现,并返回 haystack 的一部分。与 mb_strstr() 不同,mb_stristr() 不区分大小写。如果找不到 needle,则返回 false

参数

haystack

从中获取 needle 的第一次出现的字符串

needle

haystack 中查找的字符串

before_needle

确定此函数返回 haystack 的哪一部分。如果设置为 true,则返回从开头到 needle 的第一次出现(不包括 needle)的所有 haystack。如果设置为 false,则返回从 needle 的第一次出现到结尾(包括 needle)的所有 haystack

encoding

要使用的字符编码名称。如果省略,则使用内部字符编码。

返回值

返回 haystack 的一部分,如果找不到 needle,则返回 false

变更日志

版本 描述
8.0.0 needle 现在接受空字符串。
8.0.0 encoding 现在可以为空。

参见

  • stristr() - 不区分大小写的 strstr
  • strstr() - 查找字符串的第一次出现
  • mb_strstr() - 查找另一个字符串中字符串的第一次出现

添加备注

用户贡献的笔记 1 条笔记

nowfel dot terki at mailfence dot com
2 年前
请注意,如果 needle 是空字符串,mb_stristr 默认返回 haystack。

例如

<?php
if (mb_stristr("foo", "")) {
echo
"我们进入了条件";
}
?>

因为在上例中,mb_stristr 的返回值是 "foo"。

因此,如果我们不希望这种行为,则必须将第三个参数 ($before_needle) 设置为 true。

<?php
if (mb_stristr("foo", "", true)) {
echo
"我们没有进入条件";
}
?>

知道这一点很有用,尤其是在 needle 是动态的时候。
To Top