¡Hola hola! Aquí estamos de nuevo con una nueva entrada, esta vez, acerca de string contain en PHP. Aunque, esta funcionalidad no es nativa de PHP, hasta la versión 8 de PHP, y eso que es uno de los checks más usados.
En este post vamos a ver cómo hacer la función str_contrain de PHP en versiones anteriores a la 8.
String contain en PHP
¿Cómo comprobar si un string está en tu texto?
¿Cómo comprobar si un string está en un texto usando PHP? Creando la función str_contain como wrapper a las funciones strpos nativas de PHP.
$text = 'How are you?';
$word = "are";
if (strpos($text, word) !== false) {
echo 'true';
} else {
echo 'false';
}
Para ello usamos la función nativa de PHP strpos. Vamos a por nuestra propia función para hacernos la cosa más fácil.
Crear función str_contain
Aunque, no es complicado el código anterior. Personalmente, tengo una librería de helpers con funcionalidad de PHP y str_contain es una de estas funciones. Mi wrapper de la función, es el siguiente.
public static function str_contain($needle, $haystack, $insensitive = false) {
return $insensitive ? false !== stristr($haystack, $needle) : false !== strpos($haystack, $needle);
}
Donde:
- $needle, que es el texto a buscar.
- $haystack, que es el texto completo, donde vamos a buscar needle.
- $insensitive, será true o false, dependiendo de si queremos buscar independientemente de mayúsculas y minúsculas.
Un ejemplo de uso, podría ser el siguiente:
function str_contain($needle, $haystack, $insensitive = false) {
return $insensitive ? false !== stristr($haystack, $needle) : false !== strpos($haystack, $needle);
}
$txt = "venga vamos a hacer un txt de prueba";
$estoy = "Venga";
// Vemos que no debe de estar al buscar por la coincidencia exacta
$x = str_contain($estoy, $txt);
if ($x) {
echo "$estoy está en $txt";
} else {
echo "$estoy no está en $txt";
function str_contain($needle, $haystack, $insensitive = false) {
return $insensitive ? false !== stristr($haystack, $needle) : false !== strpos($haystack, $needle);
}
$txt = "venga vamos a hacer un txt de prueba";
$estoy = "Venga";
// Vemos que no debe de estar al buscar por la coincidencia exacta
$x = str_contain($estoy, $txt);
if ($x) {
echo "$estoy está en $txt\n";
} else {
echo "$estoy no está en $txt\n";
}
// Output: Venga no está en venga vamos a hacer un txt de prueba
// En este caso devolverá true porque estamos buscando independientemente de mayúsculas y minúsculas
$x = str_contain($estoy, $txt, true);
if ($x) {
echo "$estoy está en $txt\n";
} else {
echo "$estoy no está en $txt\n";
}
// Output: Venga está en venga vamos a hacer un txt de prueba
Resumen
Hemos aprendido a hacer nuestra propia función str_contain en versiones PHP < 8 para comprobar si un string existe en el texto. Además de esto, también hemos aprendido sobre las funciones strpos y stripos nativas de PHP.
Comparte 🙂
Si te ha gustado el contenido de este artículo no te olvides de compartirlo ya que con eso me harías muy feliz. GRACIAS 😉
Participa 😉
Además de todo ello, si tienes dudas o puedes aportar algo con un comentario, no dudes en hacerlo. GRACIAS 😉