В вашем случае stripos()
, вероятно, добьется цели:
function is_words_in_text($words, $string)
{
foreach ((array) $words as $word)
{
if (stripos($string, $word) !== false)
{
return true;
}
}
return false;
}
Но это будет также соответствовать не словам (как в te
в Water
), чтобы исправить это, мы можем использовать preg_match()
:
function is_words_in_text($words, $string)
{
foreach ((array) $words as $word)
{
if (preg_match('~\b' . preg_quote($word, '~') . '\b~i', $string) > 0)
{
return true;
}
}
return false;
}
Все поиски выполняются без учета регистра, $words
может быть строкой или массивом.