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 не найдена.

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

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

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

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

add a note add a note

User Contributed Notes 2 notes

up
1
Anonymous
18 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
9 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