Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if a string contain multiple specific words

Tags:

php

How to check, if a string contain multiple specific words?

I can check single words using following code:

$data = "text text text text text text text bad text text naughty"; if (strpos($data, 'bad') !== false) {     echo 'true'; } 

But, I want to add more words to check. Something like this:

$data = "text text text text text text text bad text text naughty"; if (strpos($data, 'bad || naughty') !== false) {     echo 'true'; } 

(if any of these words is found then it should return true)

But, above code does not work correctly. Any idea, what I'm doing wrong?

like image 527
Jessica Lingmn Avatar asked Apr 07 '13 12:04

Jessica Lingmn


People also ask

How do you check if a string contains multiple words JS?

The includes() method is used to perform a case-sensitive search to detect whether a string contains another string or not and returns a Boolean value. The every() method executes a certain function for each element in an array.

How do you check if a string contains any of some strings?

Using String. contains() method for each substring. You can terminate the loop on the first match of the substring, or create a utility function that returns true if the specified string contains any of the substrings from the specified list.

How do I check if a string contains a specific word in PHP?

You can use the PHP strpos() function to check whether a string contains a specific word or not. The strpos() function returns the position of the first occurrence of a substring in a string. If the substring is not found it returns false .


1 Answers

For this, you will need Regular Expressions and the preg_match function.

Something like:

if(preg_match('(bad|naughty)', $data) === 1) { }  

The reason your attempt didn't work

Regular Expressions are parsed by the PHP regex engine. The problem with your syntax is that you used the || operator. This is not a regex operator, so it is counted as part of the string.

As correctly stated above, if it's counted as part of the string you're looking to match: 'bad || naughty' as a string, rather than an expression!

like image 134
christopher Avatar answered Sep 19 '22 18:09

christopher