mb_strripos

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

mb_strripos Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

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

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

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

haystack

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

needle

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

offset

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

encoding

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

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

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

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

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

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

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

add a note add a note

User Contributed Notes 2 notes

up
1
easai
13 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
0
ivrokrambler at gmail dot com
6 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