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

Подстрока (string) для поиска в строке haystack.

offset
Положительные значения указывают произвольную начальную позицию поиска символов в строке (string). Отрицательные значения остановят поиск в произвольной точке до конца строки (string).
encoding

Параметр encoding указывает кодировку символов. При пропуске параметра или передаче значения null функция интерпретирует символы в предустановленной кодировке модуля.

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

Функция возвращает числовую позицию последнего вхождения подстроки needle в строку (string) haystack или значение false, если строка не содержит подстроку needle.

Ошибки

  • Функция выбросит ошибку ValueError, если значение параметра offset превысит длину строки haystack.

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

Версия Описание
8.0.0 needle теперь принимает пустую строку.
8.0.0 Запретили передачу названия кодировки для параметра encoding в третьем аргументе вместо параметра offset.
8.0.0 Параметр encoding теперь принимает значение null.

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

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

Добавить

Примечания пользователей 2 notes

up
2
Anonymous
19 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
1
Anonymous
10 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