PHP Conference Nagoya 2025

mb_strripos

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

mb_strriposEncontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas

Descrição

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

mb_strripos() realiza uma operação multi-byte segura de strripos() com base no número de caracteres. A posição de needle é contada a partir do início de haystack. A posição do primeiro caractere é 0. A posição do segundo caractere é 1. Ao contrário de mb_strrpos(), mb_strripos() é insensível a maiúsculas e minúsculas.

Parâmetros

haystack

A string da qual obter a posição da última ocorrência de needle

needle

A string a ser encontrada em haystack

offset

A posição em haystack para começar a busca

encoding

Nome do conjunto de caracteres a ser usado. Se omitido, é usado o conjunto de caracteres interno.

Valor Retornado

Retorna a posição numérica da última ocorrência de needle na string haystack, ou false se needle não for encontrada.

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro needle agora aceita uma string vazia.
8.0.0 O parâmetro encoding agora pode ser nulo.

Veja Também

  • strripos() - Encontra a posição da última ocorrência de uma substring em uma string, insensível a miúsculas/minúsculas
  • strrpos() - Encontra a posição da última ocorrência de uma substring em uma string
  • mb_strrpos() - Encontra a posição da última ocorrência de uma string em outra string

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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