mb_strrpos

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

mb_strrpos查找字符串中最后一个出现的字符串的位置

说明

mb_strrpos(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?string $encoding = null
): int|false

基于字符数量执行多字节安全的 strrpos() 操作。needle 的位置从 haystack 的开头算起。第一个字符的位置为 0。第二个字符的位置为 1。

参数

haystack

要检查的 string,以查找 needle 的最后一次出现

needle

要在 haystack 中查找的 string

offset
可以指定从 string 中的任意数量的字符开始搜索。负值将在 string 结束之前停止搜索。
encoding

encoding 参数是字符编码。如果省略或为 null,将使用内部字符编码值。

返回值

返回 needlehaystack string 中最后一次出现的数字位置。如果未找到 needle,则返回 false

变更日志

版本 说明
8.0.0 needle 现在接受空字符串。
8.0.0 传递 encoding 作为第三个参数而不是偏移量已被删除。
8.0.0 encoding 现在可以为空。

参见

添加备注

用户贡献的备注 2 个备注

匿名
18 年前
如果 $haystack 为空,mb_strrpos 会抛出警告。
strrpos 只是返回 FALSE。

如果重载 mb 函数,这一点需要谨慎。
匿名
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