2024 年日本 PHP 研討會

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() 會在 haystack 中尋找 needle 第一次出現的位置,並返回 haystack 的一部分。與 mb_strstr() 不同,mb_stristr() 不區分大小寫。如果找不到 needle,則返回 false

參數

haystack

要在其中取得 needle 第一次出現位置的字串。

needle

要在 haystack 中尋找的字串。

before_needle

決定此函數返回 haystack 的哪一部分。如果設為 true,則返回 haystack 從開頭到 needle 第一次出現位置的所有部分(不包含 needle)。如果設為 false,則返回 haystackneedle 第一次出現位置到結尾的所有部分(包含 needle)。

encoding

要使用的字元編碼名稱。如果省略,則使用內部字元編碼。

返回值

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

更新日誌

版本 說明
8.0.0 needle 現在接受空字串。
8.0.0 encoding 現在可以為 null。

參見

  • stristr() - 不區分大小寫的 strstr
  • strstr() - 尋找字串第一次出現的位置
  • mb_strstr() - 尋找字串在另一個字串中第一次出現的位置

新增註解

使用者貢獻的註解 1 則註解

0
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