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?
Advertisement
Answer
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.