mb_strripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strripos Находит последнее вхождение подстроки в строку без учёта регистра

Описание

mb_strripos(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?string $encoding = null
): int|false

Функция mb_strripos() выполняет безопасную многобайтовую операцию strripos(), основываясь на количестве символов. Позиция подстроки needle рассчитывается с начала строки haystack. Позиция первого символа — 0. Второго символа — 1. Функция mb_strripos(), в отличие от функции mb_strrpos(), не чувствительна к регистру.

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

haystack

Строка, в которой функция будет искать позицию последнего вхождения подстроки needle.

needle

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

offset

Позиция в строке haystack, с которой нужно начать поиск.

encoding

Название кодировки символов. Если на задана, будет использована внутренняя кодировка символов.

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

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

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

Версия Описание
8.0.0 needle теперь принимает пустую строку.
8.0.0 Теперь параметр encoding может принимать значение null.

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

  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • mb_strrpos() - Ищет позицию последнего вхождения подстроки в строку

add a note add a note

User Contributed Notes 2 notes

up
0
easai
14 years ago
Here are Java like startsWith/endsWith implementations in PHP.

<?php
   
function startsWith($haystack,$needle)
    {
     
$res=FALSE;
      if(
mb_strripos($haystack,$needle,0,"utf-8")==0)
        
$res= TRUE;
      return
$res;
    }

    function
endsWith($haystack,$needle)
    {
     
$res=FALSE;
     
$len=mb_strlen($haystack);
     
$pos=$len-mb_strlen($needle);
      if(
mb_strripos($haystack,$needle,0,"utf-8")==$pos)
        
$res= TRUE;
      return
$res;
    }
?>
up
-1
ivrokrambler at gmail dot com
7 years ago
<?php
function backStrpos($str, $needle, $offset){
   
$needler = backStr($needle);
   
$strr = backStr($str);
   
$offsetr = strlen($str) - 1 - $offset;
   
$posr = mb_stripos($strr, $needler, $offsetr);
    return
strlen($str) - 1 - $posr - strlen($needle);
}
function
backStr($str){
   
$str = str_replace(array('<', '>'), array('>', '<'), $str);
    return
strrev($str);
}

function
backStrpos($str, $needle, $offset){
   
$needler = backStr($needle);
   
$strr = backStr($str);
   
$offsetr = strlen($str) - 1 - $offset;
   
$posr = mb_stripos($strr, $needler, $offsetr);
    return
strlen($str) - 1 - $posr - strlen($needle);
}
function
backStr($str){
   
$str = str_replace(array('<', '>'), array('>', '<'), $str);
    return
strrev($str);
}

$test = '<table><TR>TEXT</TR><TR>TEST</TR></table>';
$pos = mb_stripos($test, 'TEST', 0);
var_dump($pos);
var_dump(backStrpos($test, '<tr', $pos));
var_dump(backStrpos($test, '<tr', backStrpos($test, '<tr', $pos)));

------->
int(24)
int(19)
int(6)
To Top