mb_strrpos throws a warning if $haystack is empty.
strrpos simply returns FALSE.
This is something to be wary of if overloading the mb functions.
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_strrpos — Поиск позиции последнего вхождения одной строки в другую
$haystack
,$needle
,$offset
= 0,$encoding
= null
Выполняет безопасную с точки зрения многобайтных кодировок операцию
strrpos() , основываясь на количестве символов.
Позиция строки needle
рассчитывается с начала строки haystack
. Позиция
первого символа 0. Второго символа 1.
haystack
Строка (string), в которой производится поиск вхождения
needle
.
needle
Строка (string), поиск которой производится в строке
haystack
.
offset
encoding
Параметр encoding
представляет собой символьную кодировку. Если он опущен или равен null
, вместо него будет использовано значение внутренней кодировки.
Возвращает позицию последнего вхождения строки needle
в строке (string) haystack
либо false
,
если needle
не найдена.
Версия | Описание |
---|---|
8.0.0 |
needle теперь принимает пустую строку.
|
8.0.0 |
Передача encoding в качестве третьего аргумента
вместо offset была удалена.
|
8.0.0 |
Теперь параметр encoding может принимать значение null .
|
mb_strrpos throws a warning if $haystack is empty.
strrpos simply returns FALSE.
This is something to be wary of if overloading the mb functions.
"Negative values will stop searching at an arbitrary point prior to the end of the string. " ist misleading.
The needle may not fully part of searchrange, defined by a negative offset.
A negative offsets marks the last byte, where a search could start.
<?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)
?>