Busca la posición de la última ocurrencia de una subcadena en una cadena

# strrpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strrpos — Busca la posición de la última ocurrencia de una subcadena en una cadena

### Descripción

function strrpos(string `$haystack`, string `$needle`, int `$offset` = 0): int|false

Busca la posición numérica de la última ocurrencia de `needle` en la cadena `haystack`.

### Parámetros

`haystack`

  La cadena en la que buscar.

`needle`

  La cadena a buscar.

  Anterior a PHP 8.0.0, si `needle` no es una cadena de caracteres, se convierte en un entero y se aplica como valor ordinal de un carácter. Este comportamiento está obsoleto a partir de PHP 7.3.0, y confiar en él está fuertemente desaconsejado. Dependiendo del comportamiento esperado, `needle` debe ser explícitamente convertido a una cadena de caracteres, o debe realizarse una llamada explícita a chr().
`offset`

  Si es cero o positivo, la búsqueda se realiza de izquierda a derecha omitiendo los primeros `offset` bytes de `haystack`.

  Si es negativo, la búsqueda comienza a `offset` bytes de la derecha en lugar de desde el inicio de `haystack`. La búsqueda se realiza de derecha a izquierda, buscando la primera ocurrencia de `needle` desde el byte seleccionado.

  > Nota:

  > Esto es efectivamente equivalente a buscar la última ocurrencia de `needle` en o antes de los últimos `offset` bytes.

### Valores devueltos

Devuelve la posición de la última ocurrencia de `needle` en relación con el inicio de la cadena `haystack` (independientemente de la dirección de búsqueda o del offset).

> Nota: Las posiciones de los string comienzan en 0, y no en 1.

Devuelve `false` si `needle` no ha sido encontrado.

Advertencia

Esta función puede retornar `false`, pero también puede retornar un valor equivalente a `false`. Por favor, lea la sección sobre los booleanos para más información. Utilice el operador === para probar el valor de retorno exacto de esta función.

### Errores/Excepciones

- Si `offset` es mayor que la longitud de `haystack`, se lanzará un ValueError.

### Historial de cambios

Versión | Descripción
--- | ---
8.0.0 | `needle` acepta ahora una cadena vacía.
8.0.0 | Pasar un int como `needle` ya no está soportado.
7.3.0 | Pasar un int como `before_needle` ha sido declarado obsoleto.

### Ejemplos

Ejemplo #1 Verifica si una ocurrencia es encontrada en una cadena

Es fácil cometer un error con respecto al valor devuelto entre "carácter encontrado en la posición 0" y "carácter no encontrado". A continuación se muestra cómo detectar esta diferencia:

    <?php
    $mystring = 'Elephpant';

    $pos = strrpos($mystring, "b");
    if ($pos === false) { // nota: 3 signos "="
        // no encontrado...
    }

    ?>

Ejemplo #2 Búsqueda con posiciones

    <?php
    $foo = "0123456789a123456789b123456789c";

    // Buscar '0' desde el byte 0 (desde el inicio)
    var_dump(strrpos($foo, '0', 0));

    // Buscar '0' desde el primer byte (después del byte "0")
    var_dump(strrpos($foo, '0', 1));

    // Buscar '7' desde el byte 21 (después del byte 20)
    var_dump(strrpos($foo, '7', 20));

    // Buscar '7' desde el byte 29 (después del byte 28)
    var_dump(strrpos($foo, '7', 28));

    // Buscar '7' de derecha a izquierda desde el quinto byte desde el final
    var_dump(strrpos($foo, '7', -5));

    // Buscar 'c' de derecha a izquierda desde el segundo byte desde el final
    var_dump(strrpos($foo, 'c', -2));

    // Buscar '9c' de derecha a izquierda desde el segundo byte desde el final
    var_dump(strrpos($foo, '9c', -2));
    ?>

El ejemplo anterior mostrará:

    int(0)
    bool(false)
    int(27)
    bool(false)
    int(17)
    bool(false)
    int(29)

### Ver también

- strpos() - Busca la posición de la primera ocurrencia en un string
- stripos() - Busca la posición de la primera ocurrencia en un string, sin distinguir mayúsculas de minúsculas
- strripos() - Busca la posición de la última ocurrencia de un string contenido en otro, de forma insensible a mayúsculas y minúsculas
- strrchr() - Encuentra la última ocurrencia de un carácter en un string
- substr() - Devuelve un segmento de string

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open