(PHP 4, PHP 5, PHP 7)
strrpos — Encuentra la posición de la última aparición de un substring en un string
Encuentra la posición númerica de la última aparición de
needle
(aguja) en el string haystack
(pajar).
haystack
El string donde buscar.
needle
Si needle
no es una cadena, se convierte
a un entero y se aplica como el valor ordinal de un carácter.
Este comportamiento está obsoleto a partir de PHP 7.3.0, por lo que su uso está totalmente
desaconsejado. Dependiendo del comportamiento previsto,
needle
deberá ser convertido explícitamente a string,
o realizar una llamada explícita a chr().
offset
Si se especifica, la búsqueda iniciará en éste número de caracteres contados desde el comienzo del string. Si el valor es negativo, entonces la búsqueda iniciará desde esa cantidad de caracteres desde el final del string, buscando hacia atrás.
Devuelve la posición donde la aguja existe en relación al inicio del
string haystack
(independiente de la dirección de la búsqueda
o del offset).
También tener en cuenta que las posiciones de inicio de los string empiezan en 0 y no 1.
Devuelve FALSE
si no fue encontrada la aguja.
Esta función puede
devolver el valor booleano FALSE
, pero también puede devolver un valor no booleano que se
evalúa como FALSE
. Por favor lea la sección sobre Booleanos para más
información. Use el operador
=== para comprobar el valor devuelto por esta
función.
Versión | Descripción |
---|---|
5.0.0 |
needle puede ser ahora un string de más de un
carácter.
|
Ejemplo #1 Verificando si hay una aguja en el pajar
Es fácil confundir el valor devuelto por "caracter encontrado en la posición 0" y "caracter no encontrado". Aquí está la forma de detectar la diferencia:
<?php
$pos = strrpos($mystring, "b");
if ($pos === false) { // nota: tres signos de igual
// no encontrado...
}
?>
Ejemplo #2 Buscando con desplazamientos
<?php
$foo = "0123456789a123456789b123456789c";
var_dump(strrpos($foo, '7', -5)); // Comienza mirando hacia atrás cinco posiciones
// desde el final. Resultado: int(17)
var_dump(strrpos($foo, '7', 20)); // Inicia la búsqueda 20 posiciones en el
// string. Resultado: int(27)
var_dump(strrpos($foo, '7', 28)); // Resultado: bool(false)
?>