W3docs

strripos()

La función strripos() en PHP busca la última aparición de una subcadena sin distinguir mayúsculas en una cadena.

Introducción

La función strripos() en PHP encuentra la posición de la última aparición de una subcadena dentro de otra cadena, sin distinguir entre mayúsculas y minúsculas. El nombre se descompone como str (string) + r (reverse, es decir, búsqueda desde la derecha) + i (case-insensitive) + pos (posición).

Es la versión sin distinción de mayúsculas de strrpos(): strripos("Hello", "L") y strripos("Hello", "l") devuelven la misma posición, mientras que strrpos() trataría L y l como caracteres distintos.

Este capítulo cubre la sintaxis, el valor de retorno (y la trampa de false que debes evitar), el parámetro opcional $offset — incluidos los offsets negativos — y cómo strripos() se relaciona con las demás funciones de búsqueda en cadenas.

Sintaxis

strripos(string $haystack, string $needle, int $offset = 0): int|false
ParámetroDescripción
$haystackLa cadena en la que se realiza la búsqueda.
$needleLa subcadena que se busca.
$offsetOpcional. Dónde comenzar la búsqueda. Un valor positivo omite los primeros $offset caracteres; un valor negativo detiene la búsqueda esa cantidad de caracteres antes del final de la cadena. El valor predeterminado es 0.

Valor de retorno: el índice de base cero de la última aparición encontrada, o false si $needle no se encuentra.

Compara siempre con !==

strripos() devuelve 0 cuando la coincidencia se encuentra al inicio de la cadena, y 0 es falsy en PHP. Una comprobación laxa como if (strripos(...)) trataría erróneamente una coincidencia en la posición cero como "no encontrado". Compara siempre con false usando el operador estricto !==:

<?php

$haystack = "Apple pie";
$pos = strripos($haystack, "a"); // matches "A" at index 0

if ($pos !== false) {
  echo "Found at index $pos"; // Found at index 0
} else {
  echo "Not found";
}

Ejemplo básico

php— editable, runs on the server

Hay dos caracteres o/O en Hello World — uno en Hello (índice 4) y otro en World (índice 7). Como strripos() reporta la última coincidencia, la salida es:

Found last occurrence of 'o' in 'Hello World' at position 7

Coincidencia sin distinción de mayúsculas

La búsqueda trata las letras en mayúsculas y minúsculas como iguales, por lo que el uso de mayúsculas en $needle no importa:

<?php

$string = "Hello World, hello PHP";

echo strripos($string, "hello"), "\n"; // 13 — matches "hello" in "hello PHP"
echo strripos($string, "HELLO"), "\n"; // 13 — same match, case ignored

El último hello/HELLO/Hello en la cadena comienza en el índice 13, independientemente de cómo se escriba la aguja.

Uso del parámetro $offset

Un offset positivo inicia la búsqueda después de los primeros $offset caracteres:

<?php

$string = "Hello World";

echo strripos($string, "o", 5), "\n"; // 7 — only the "o" in "World" is considered

Un offset negativo hace que la búsqueda se detenga esa cantidad de caracteres antes del final de la cadena, lo cual es útil para encontrar la última coincidencia en todo excepto una porción final:

<?php

$string = "abcabc";

echo strripos($string, "b", -2), "\n"; // 4 — last "b" within the truncated search window

Funciones relacionadas

Elige la función de búsqueda adecuada para cada situación:

  • strrpos() — igual que strripos() pero distingue mayúsculas.
  • stripos() — encuentra la primera aparición sin distinción de mayúsculas.
  • strpos() — encuentra la primera aparición con distinción de mayúsculas.
  • strstr() — devuelve el resto de la cadena a partir de la primera coincidencia, en lugar de una posición.
  • substr() — extrae una parte de la cadena una vez que conoces la posición.
FunciónDirección¿Distingue mayúsculas?
strpos()primera coincidencia
stripos()primera coincidenciano
strrpos()última coincidencia
strripos()última coincidenciano

Conclusión

strripos() localiza la última aparición sin distinción de mayúsculas de una subcadena y devuelve su índice, o false cuando no hay coincidencia. Recuerda comprobar el resultado con !== para que una coincidencia en la posición cero no se confunda con un fallo, y usa $offset (positivo o negativo) cuando necesites limitar la ventana de búsqueda. Cuando necesites la primera coincidencia, o cuando la distinción de mayúsculas sea importante, utiliza una de las funciones relacionadas mencionadas anteriormente.

Práctica

Práctica
¿Qué hace la función PHP strripos()?
¿Qué hace la función PHP strripos()?
Was this page helpful?