I have a string like this:
$str = "it is a test";
I want to check it for these words: it
, test
. I want to it returns true
if there is at least one of those words in the string.
Here is what I did: (though it does not work)
$keywords = array ('it', 'test');
if(strpos($str, $keywords) !== false){ echo 'true';}
else echo 'false';
How can I do that?
Simply checking using preg_match()
, you can add many different words in the pattern, just use a separator |
in between words.
The following will match partial words, so larger words like pit
, testify
, itinerary
will be matched. The pattern is also case-sensitive, so It
and Test
will not be matched.
$str = "it is a test";
if (preg_match("/it|test/", $str))
{
echo "a word was matched";
}
Sorry, I didn't know that you were dealing with other languages, you can try this:
$str = "你好 abc efg";
if (preg_match("/\b(你好|test)\b/u", $str))
{
echo "a word was matched";
}
I also need to mention that \b
means word boundary, so it will only matches the exact words.