strrpos

(PHP 4, PHP 5, PHP 7)

strrposEncuentra la posición de la última aparición de un substring en un string

Descripción

strrpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

Encuentra la posición númerica de la última aparición de needle (aguja) en el string haystack (pajar).

Parámetros

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.

Valores devueltos

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.

Advertencia

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.

Historial de cambios

Versión Descripción
5.0.0 needle puede ser ahora un string de más de un carácter.

Ejemplos

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)
?>

Ver también

  • strpos() - Encuentra la posición de la primera ocurrencia de un substring en un string
  • stripos() - Encuentra la posición de la primera aparición de un substring en un string sin considerar mayúsculas ni minúsculas
  • strripos() - Encuentra la posición de la última aparición de un substring insensible a mayúsculas y minúsculas en un string
  • strrchr() - Encuentra la última aparición de un caracter en un string
  • substr() - Devuelve parte de una cadena