Si desea comprobar si hay varias palabras en la misma cadena, y que está tratando con grandes cadenas, entonces esto es más rápido:
$text = explode(' ',$text);
$text = array_flip($text);
A continuación, puede comprobar palabras con:
if (isset($text[$word])) doSomething();
Este método es muy rápido.
Pero para buscar un par de palabras en cadenas cortas, utilice preg_match.
ACTUALIZACIÓN:
Si realmente vas a utilizar este sugiero ponerlo en práctica como esta para evitar problemas:
$text = preg_replace('/[^a-z\s]/', '', strtolower($text));
$text = preg_split('/\s+/', $text, NULL, PREG_SPLIT_NO_EMPTY);
$text = array_flip($text);
$word = strtolower($word);
if (isset($text[$word])) doSomething();
Entonces doble espacios, saltos de línea, puntuacion y capitales ganaron' t produce falsos negativos.
Este método es mucho más rápido para buscar múltiples palabras en cadenas grandes (es decir, documentos enteros de texto), pero es más eficiente usar preg_match si todo lo que quiere hacer es encontrar si existe una sola palabra en un tamaño normal cuerda.
Lo probé y funcionó. Muchas gracias. – Tafu
Si vas a usar esto, mira mi actualización para hacerlo más confiable. – Alasdair