PHP 8.5.0 Alpha 1 available for testing

mb_strripos

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

mb_strriposEncuentra la posición de la última ocurrencia de una cadena en otra, sin tener en cuenta la casilla

Descripción

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

mb_strripos() realiza una operación strripos() basada en el número de caracteres. La posición needle se cuenta desde el inicio de haystack. La posición del primer carácter es 0. El segundo tiene como posición 1, etc. A diferencia de mb_strrpos(), mb_strripos() no es sensible a la casilla.

Parámetros

haystack

La cadena desde la cual se recupera la posición de la última ocurrencia de needle

needle

La cadena a buscar en haystack

offset

La posición en haystack desde la cual se debe comenzar a buscar

encoding

Nombre del codificación a utilizar. Si este parámetro es omitido, se utiliza la codificación interna.

Valores devueltos

Devuelve la posición numérica de la última ocurrencia de needle en la cadena haystack, o false si needle no es encontrado.

Historial de cambios

Versión Descripción
8.0.0 needle ahora acepta una cadena vacía.
8.0.0 encoding ahora es nullable.

Ver también

  • strripos() - Busca la posición de la última ocurrencia de un string contenido en otro, de forma insensible a mayúsculas y minúsculas
  • strrpos() - Busca la posición de la última ocurrencia de una subcadena en una cadena
  • mb_strrpos() - Localiza la última ocurrencia de un carácter en una cadena

add a note

User Contributed Notes 2 notes

up
0
easai
15 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
8 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