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 条注释

匿名
19 年前
如果 $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