How to check if a string contains specific words in PHP

There are multiple ways to check if a string contains any words from the given array using PHP. You can check one specific word or multiple words from an array.

Check if a string contains a specific word:
Use the PHP str_contains() function to determine if a string contains a specific word.

<?php 

$string 
'Lorem Ipsum is simply dummy text of the printing and typesetting industry area.';
$word 'dummy';

// Case sensitive
if (str_contains($string$word)) {
    echo 
"String contains '$word'";
} else {
    echo 
"String does not contains '$word'";
}

// Case insensitive
if (stripos($string$word) !== false) {
    echo 
"String contains '$word'";
} else {
    echo 
"String does not contains '$word'";
}

?>

Check if a string contains multiple specific words:
If you want to check multiple words in a string, define words in an array. The following code snippets can help to check whether a string contains any words from the given array using PHP.

<?php 

$string 
"Lorem Ipsum is simply dummy text of the printing and typesetting industry area.";
$words = ["ipsum""text""area"];

// Using str_contains (PHP 8+)
foreach ($words as $word) {
    if (
str_contains($string$word)) {
        echo 
"String contains '$word'\n";
    }
}

// Using stripos (case-insensitive)
foreach ($words as $word) {
    if (
stripos($string$word) !== false) {
        echo 
"String contains '$word'\n";
    }
}

// Using preg_match (case-insensitive)
$pattern '/\b(' implode('|'array_map('preg_quote'$words)) . ')\b/i';
if (
preg_match($pattern$string$matches)) {
    echo 
"String contains a word from the array: " implode(", "array_unique($matches)) . "\n";
}

?>

Custom function to check if a string contains specific words from an array and return a boolean value (true/false) using PHP:

function stringContainsWords(string $string, array $words): bool 
{
    foreach (
$words as $word) {
        if (
stripos($string$word) !== false) {
            return 
true// If any word is found, return true immediately
        
}
    }
    return 
false// Words were not found
}

Leave a reply

keyboard_double_arrow_up