array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.strrpos.php', 1 => 'strrpos', ), 'up' => array ( 0 => 'ref.strings.php', 1 => 'Функции для работы со строками', ), 'prev' => array ( 0 => 'function.strripos.php', 1 => 'strripos', ), 'next' => array ( 0 => 'function.strspn.php', 1 => 'strspn', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/strings/functions/strrpos.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
strrpos — Возвращает позицию последнего вхождения подстроки в строке
Ищет позицию последнего вхождения подстроки needle
в строку haystack
.
haystack
Строка, в которой производится поиск.
needle
Строка для поиска.
До PHP 8.0.0, если параметр needle
— не строка,
он преобразовывается в целое число и трактуется как код символа.
Это поведение устарело с PHP 7.3.0 и полагаться на него крайне не рекомендуется.
В зависимости от предполагаемого поведения,
параметр needle
должен быть либо явно приведён к строке,
либо должен быть выполнен явный вызов функции chr().
offset
Если равно или больше ноля, то поиск будет идти слева направо
и, при этом, будут пропущены первые offset
байт строки haystack
.
Если меньше ноля, то поиск начинается с offset
байта справа,
а не с начала haystack
.
Поиск выполняется справа налево, ищется первое
вхождение needle
от выбранного байта.
Замечание:
Фактически это будет последнее вхождение
needle
без учётаoffset
последних байт.
Возвращает номер позиции последнего вхождения needle
относительно начала строки haystack
(независимо от направления поиска и смещения (offset)).
Замечание: Позиция в строке строки отсчитывается от 0, а не от 1.
Возвращает false
, если искомая строка не найдена.
Функция
возвращает как логическое значение false
,
так и нелогическое значение, которое приводится к false
.
Прочитайте раздел
«Логический тип»,
чтобы получить дополнительную информацию.
Используйте оператор ===
для проверки значения, которое возвращает функция.
Версия | Описание |
---|---|
8.0.0 |
Параметр needle теперь допускает пустую строку.
|
8.0.0 |
Передача целого числа (int) в needle больше не поддерживается.
|
7.3.0 |
Передача целого числа (int) в needle объявлена устаревшей.
|
Пример #1 Проверка существования искомой строки
Легко ошибиться и перепутать возвращаемые значения в случаях "символ найден в нулевой позиции" и "символ не найден". Вот так можно узнать разницу:
<?php
$pos = strrpos($mystring, "b");
if ($pos === false) { // обратите внимание: три знака равенства
// не найдено...
}
?>
Пример #2 Поиск со смещением
<?php
$foo = "0123456789a123456789b123456789c";
var_dump(strrpos($foo, '7', -5)); // Поиск происходит в обратном направлении и
// начинается с пятой позиции с конца. Результат: int(17)
var_dump(strrpos($foo, '7', 20)); // Начинает поиск с 20 позиции в строке.
// Результат: int(27)
var_dump(strrpos($foo, '7', 28)); // Результат: bool(false)
?>
Результат выполнения приведённого примера:
int(0) bool(false) int(27) bool(false) int(17) bool(false) int(29)