Buscar palabras en una cadena de texto con PHP strpos() y strrpos()

Vamos a ver cómo buscar palabras o letras en una cadena de texto con las funciones de PHP strpos() y strrpos(). Estas funciones de PHP son muy parecidas a PHP preg_match().

Otras entradas interesantes son:

Sintaxis de PHP strpos()

Ahora toca repasar la sintaxis extraída de su web oficial.

int strpos ( string $cadena_de_texto , mixed $cadena_buscada [, int $caracter_de_inicio = 0 ] )

La función PHP strpos()  devuelve la posición de la primera coincidencia de la palabra o carácter buscado en una cadena de texto (string). Es sensible a mayúsculas y minúsculas.

Detallo cada parámetro de la función:

  • int: Valor devuelto por la función. Es el número de carácter de la cadena donde comienza la coincidencia de la palabra o carácter buscado.
  • $cadena_de_texto: Es la cadena de texto donde queremos hacer la búsqueda.
  • $cadena_buscada: Es el carácter o cadena (string) que queremos buscar.
  • $caracter_de_inicio (Opcional): Número de posición de la cadena donde queremos comenzar la búsqueda. NO puede ser negativo.

Ejemplos de PHP strpos() para buscar una cadena de texto

Vamos con una serie de ejemplos para ver cómo se puede burcar una cadena de texto:

$cadena_de_texto = 'Esta es la frase donde haremos la búsqueda';
$cadena_buscada   = 'la';
$posicion_coincidencia = strpos($cadena_de_texto, $cadena_buscada);

//se puede hacer la comparacion con 'false' o 'true' y los comparadores '===' o '!=='
if ($posicion_coincidencia === false) {
    echo "NO se ha encontrado la palabra deseada!!!!";
    } else {
            echo "Éxito!!! Se ha encontrado la palabra buscada en la posición: ".$posicion_coincidencia;
            }

$posicion_coincidencia = strpos($cadena_de_texto, $cadena_buscada, 20);
if ($posicion_coincidencia === false) {
    echo "NO se ha encontrado la palabra deseada!!!!";
    } else {
            echo "Éxito!!! Se ha encontrado la palabra buscada en la posición: ".$posicion_coincidencia;
            }

Os explico la primera parte del ejemplo:

  • En las 2 primeras líneas declaramos las variables, una es la cadena de texto donde se realizará la búsqueda y la otra variable es la cadena a buscar.
  • Después realizo la búsqueda y guardo el resultado en la variable $posicion_coincidencia.
  • A continuación realizo las comparaciones para saber el resultado de la búsqueda.

La segunda parte es similar:

  • Realizo la búsqueda pasando esta vez el parámetro de caracter de inicio.
  • Y tras hacer las comparaciones saco el resultado por  pantalla.

PHP stripos(): Variante de strpos() sin sensibilidad a mayúsculas y minúsculas

Idéntica función que PHP strpos(), solo que esta NO es sensible a mayúsculoas y minúsculas.

Sintaxis de PHP strrpos()

Vamos con su sintaxis extraída de su web oficial.

int strrpos ( string $cadena_de_texto , mixed $cadena_buscada [, int $caracter_de_inicio = 0 ] )

La función PHP strrpos()  devuelve la posición de la última coincidencia de la palabra o carácter buscado en una cadena de texto (string).

Detallo cada parámetro de la función:

  • int: Valor devuelto por la función. Es el número de carácter de la cadena donde comienza la coincidencia de la palabra o carácter buscado.
  • $cadena_de_texto: Es la cadena de texto donde queremos hacer la búsqueda.
  • $cadena_buscada: Es el carácter o cadena (string) que queremos buscar.
  • $caracter_de_inicio (Opcional): Número de posición de la cadena donde queremos comenzar la búsqueda. Puede ser negativo, en ese caso comenzaría a buscar desde ese número negativo de carácteres empezando desde el final del string hacia atrás.

Ejemplo de PHP strrpos() para buscar cadenas de texto

En este segundo ejemplo vamos a realizar un caso parecido al anterior:

$cadena_de_texto = 'Esta es la frase donde haremos la búsqueda';
$cadena_buscada   = 'la';
$posicion_coincidencia = strrpos($cadena_de_texto, $cadena_buscada);

//se puede hacer la comparacion con 'false' o 'true' y los comparadores '===' o '!=='
if ($posicion_coincidencia === false) {
    echo "NO se ha encontrado la palabra deseada!!!!";
    } else {
            echo "Éxito!!! Se ha encontrado la palabra buscada en la posición: ".$posicion_coincidencia;
            }

$posicion_coincidencia = strrpos($cadena_de_texto, $cadena_buscada, -20);
if ($posicion_coincidencia === false) {
    echo "NO se ha encontrado la palabra deseada!!!!";
    } else {
            echo "Éxito!!! Se ha encontrado la palabra buscada en la posición: ".$posicion_coincidencia;
}

Os explico la primera parte del ejemplo:

  • En las 2 primeras líneas declaramos las variables, una es la cadena de texto donde se realizará la búsqueda y la otra variable es la cadena a buscar.
  • Después realizo la búsqueda y guardo el resultado en la variable $posicion_coincidencia.
  • A continuación realizo las comparaciones para saber el resultado de la búsqueda.

La segunda parte es similar:

  • Realizo la búsqueda pasando esta vez el parámetro de caracter de inicio negativo.
  • Y tras hacer las comparaciones saco el resultado por  pantalla.

PHP strripos(): Variante de strrpos() sin sensibilidad a mayúsculas y minúsculas

Idéntica función que la anterior PHP strrpos(), solo que esta NO diferencia entre mayúsculas y minúsculas.

compartir
Publicado por
Aner Barrena