Если вы хотите проверить наличие нескольких слов в одной строке и имеете дело с большими строками, тогда это быстрее:
$text = explode(' ',$text);
$text = array_flip($text);
Тогда вы можете проверить слова с помощью:
if (isset($text[$word])) doSomething();
Этот метод молниеносен.
Но для проверки пары слов в коротких строках используйте preg_match.
ОБНОВЛЕНИЕ:
Если вы действительно собираетесь использовать это, я предлагаю вам реализовать его следующим образом, чтобы избежать проблем:
$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();
Тогда двойные пробелы, переносы строк, знаки препинания и прописные буквы не будут давать ложных отрицаний.
Этот метод намного быстрее проверяет наличие нескольких слов в больших строках (т. Е. Целых документов текста), но более эффективно использовать preg_match, если все, что вам нужно, - это найти, существует ли одно слово нормального размера.строка.