PHP Conference Japan 2024

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strrpos尋找字串在另一個字串中最後一次出現的位置

說明

mb_strrpos(
    字串 $haystack,
    字串 $needle,
    整數 $offset = 0,
    ?字串 $encoding = null
): 整數|false

根據字元數執行多位元組安全的 strrpos() 操作。 needle 的位置是從 haystack 的開頭算起。第一個字元的位置是 0。第二個字元的位置是 1。

參數

haystack

被檢查的 字串,用於查找 needle 的最後一次出現位置。

needle

要在 haystack 中尋找的 字串

offset
可以指定從 字串 中任意字元數開始搜尋。負值將在字串結尾之前的任意點停止搜尋。
encoding

encoding 參數是字元編碼。如果省略或為 null,則會使用內部字元編碼值。

回傳值

回傳 needlehaystack 字串 中最後一次出現的數字位置。如果找不到 needle,則回傳 false

更新日誌

版本 說明
8.0.0 needle 現在接受空字串。
8.0.0 已移除將 encoding 作為第三個參數而不是偏移量傳遞的用法。
8.0.0 encoding 現在可以為 null。

另請參閱

新增註解

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

1
匿名
19 年前
如果 $haystack 為空,mb_strrpos 會拋出警告。
strrpos 只會回傳 FALSE。

如果要覆載 mb 函式,需要注意這一點。
-2
匿名
9 年前
「負值將在字串結尾之前的任意點停止搜尋。」這句話有誤導性。
搜尋目標字串 (needle) 可能不完全在由負偏移量定義的搜尋範圍內。
負偏移量標記搜尋可以開始的最後一個位元組。
<?php
$test
= "Hallo, Herr Gött";
var_dump(strlen($test)); // int(17)
var_dump(mb_strrpos($test,'ött',13)); // int(13)
var_dump(mb_strrpos($test,'ött',-4)); // int(13) 17-4 = 13
var_dump(mb_strrpos($test,'ött',-5)); // bool(false)
?>
To Top