ScotlandPHP

mb_strrpos

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

mb_strrpos Поиск позиции последнего вхождения одной строки в другую

Описание

int mb_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

Выполняет безопасную с точки зрения многобайтных кодировок операцию strrpos() , основываясь на количестве символов. Позиция строки needle расcчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1.

Список параметров

haystack

Строка string, в которой производится поиск вхождения needle.

needle

Строка string, поиск которой производится в строке haystack.

offset
Если аргумент задан, поиск вхождения будет начинаться с позиции offset в строке string. Если передано отрицательное значение, операция поиска остановится на позиции строки string offset, отсчитываемой с конца строки.
encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке haystack string либо FALSE, если needle не найдена.

Список изменений

Версия Описание
5.2.0 Добавлен необязательный аргумент offset.

Примечания

Замечание: Аргумент encoding перемещен с третьего места в списке на четвертое в PHP 5.2.0. Для обратной совместимости аргумент encoding может быть задан как третий аргумент, однако эта возможность считается устаревшей и вскоре будет удалена.

Смотрите также

  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке

add a note add a note

User Contributed Notes 2 notes

up
1
Anonymous
11 years ago
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.
up
0
Anonymous
2 years ago
"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)
?>
To Top