Cómo comprobar si una cadena contiene una subcadena en PHP

Minahil Noor 30 enero 2023
  1. Usar la función strpos() para comprobar si una cadena contiene una subcadena en PHP
  2. Usa la función preg_match() para comprobar si una cadena contiene una subcadena en PHP
Cómo comprobar si una cadena contiene una subcadena en PHP

Este artículo introducirá diferentes métodos para comprobar si una cadena contiene una subcadena en PHP usando las funciones strpos() y preg_match().

Usar la función strpos() para comprobar si una cadena contiene una subcadena en PHP

Usaremos la función incorporada strpos() para comprobar si una cadena contiene una subcadena. Este comando comprueba la ocurrencia de una subcadena pasada; la sintaxis correcta para ejecutarlo es la siguiente:

strpos($originalString, $checkString, $offset);

La función incorporada strpos() tiene tres parámetros, que se discuten a continuación:

Parámetros Descripción
$originalString obligatorio Es la cadena que queremos comprobar para la subcadena.
$checkString obligatorio Es la cadena que queremos comprobar en el $checkString.
$offset opcional Es la posición de inicio del proceso de búsqueda; si el desplazamiento es negativo, el proceso de búsqueda comenzará desde el final.

Esta función devuelve la posición de la subcadena en relación con la posición de la cadena original. El siguiente programa muestra cómo podemos usar la función strpos() para comprobar si una cadena contiene una subcadena.

<?php
$mystring = "This is a PHP program.";

if (strpos($mystring, "program.") !== false) {
    echo("True");
}
?>

Resultado:

True

Si pasamos el parámetro $offset, la función iniciará la búsqueda desde la posición especificada.

<?php
$mystring = "This is a PHP program.";

if (strpos($mystring, "PHP", 13) !== false) {
    echo("True");
} else {
    echo("False");
}
?>

Resultado:

False

La salida ha mostrado False porque la cadena que buscamos estaba antes del offset.

Usa la función preg_match() para comprobar si una cadena contiene una subcadena en PHP

En PHP, también podemos usar la función preg_match() para comprobar si una cadena contiene una palabra específica. Esta función utiliza expresiones regulares para hacer coincidir los patrones. La sintaxis correcta para usar esta función es la siguiente:

preg_match($pattern, $inputString, $matches, $flag, $offset);

La función preg_match() acepta cinco parámetros. El detalle de sus parámetros es el siguiente

Parámetros Descripción
$regexPattern obligatorio Es el patrón que buscaremos en la cadena original.
$string obligatorio Es la cadena que buscaremos en la cadena original.
$matches opcional Este parámetro almacena el resultado del proceso de emparejamiento en él.
$flag opcional Este parámetro especifica las banderas. Tenemos dos banderas para este parámetro: PREG_OFFSET_CAPTURE y PREG_UNMATCHED_AS_NULL.
$offset opcional Este parámetro indica la posición de inicio del proceso de emparejamiento.

Usaremos el patrón /{$search}/i para comprobar una palabra específica. El programa que comprueba si una cadena contiene una palabra específica es el siguiente:

<?php
$mystring = "This is a php program.";
$search = "a";
if(preg_match("/{$search}/i", $mystring)) {
    echo "True"; } else {
    echo("False");
}
?>

Resultado:

True

Artículo relacionado - PHP String