Cómo comprobar si una cadena contiene una subcadena en PHP
-
Usar la función
strpos()
para comprobar si una cadena contiene una subcadena en PHP -
Usa la función
preg_match()
para 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