Learn several methods in PHP to efficiently check if a string contains a specific word, from built-in functions to regular expressions.
In PHP, determining whether a string contains a specific word can be achieved through various methods. This article will guide you through two common approaches, highlighting their use cases and providing clear code examples.
To check if a string contains a specific word in PHP, you can use the following methods:
1. Using str_contains() (PHP 8 and above):
$string = "This is a test string.";
$word = "test";
if (str_contains($string, $word)) {
echo "The string contains the word '$word'.";
} else {
echo "The string does not contain the word '$word'.";
}2. Using strpos() (PHP 7 and earlier):
$string = "This is a test string.";
$word = "test";
if (strpos($string, $word) !== false) {
echo "The string contains the word '$word'.";
} else {
echo "The string does not contain the word '$word'.";
}Explanation:
str_contains(): This function returns true if the string contains the specified word, and false otherwise.strpos(): This function returns the position of the first occurrence of the word in the string. If the word is not found, it returns false. We use !== to compare the result with false because strpos() can return 0 if the word is found at the beginning of the string.Note:
str_contains() and strpos() are case-sensitive.stripos() instead of strpos().preg_match().The PHP code checks if a string contains a specific word using different methods: str_contains(), strpos(), stripos(), and preg_match(). It demonstrates both case-sensitive and case-insensitive searches, as well as searching for the whole word. The output confirms whether the word "test" is found in the string using each method.
<?php
// String to search in
$string = "This is a test string.";
// Word to search for
$word = "test";
// 1. Using str_contains() (PHP 8 and above)
if (str_contains($string, $word)) {
echo "Using str_contains(): The string contains the word '$word'.\n";
} else {
echo "Using str_contains(): The string does not contain the word '$word'.\n";
}
// 2. Using strpos() (PHP 7 and earlier)
if (strpos($string, $word) !== false) {
echo "Using strpos(): The string contains the word '$word'.\n";
} else {
echo "Using strpos(): The string does not contain the word '$word'.\n";
}
// Case-insensitive search using stripos()
if (stripos($string, "TEST") !== false) {
echo "Using stripos(): The string contains the word 'TEST' (case-insensitive).\n";
} else {
echo "Using stripos(): The string does not contain the word 'TEST' (case-insensitive).\n";
}
// Using preg_match() for whole word search
if (preg_match("/\b$word\b/", $string)) {
echo "Using preg_match(): The string contains the whole word '$word'.\n";
} else {
echo "Using preg_match(): The string does not contain the whole word '$word'.\n";
}
?>This code demonstrates all the methods mentioned in the article:
str_contains(): Checks if the string contains the word "test".strpos(): Checks if the string contains the word "test".stripos(): Performs a case-insensitive search for the word "TEST".preg_match(): Uses a regular expression to check for the presence of the word "test" as a whole word.This code will output:
Using str_contains(): The string contains the word 'test'.
Using strpos(): The string contains the word 'test'.
Using stripos(): The string contains the word 'TEST' (case-insensitive).
Using preg_match(): The string contains the whole word 'test'.
strpos() might be slightly faster than str_contains(), especially in older PHP versions. However, the difference is usually negligible.strstr() and stristr() can also be used to check for substrings, but they return the matched substring instead of a boolean or position.preg_match() with word boundaries (\b) is crucial when you want to match a specific word and not just a sequence of characters. For example, you might want to match "test" but not "testing".preg_quote() to escape any special characters in the word.strpos() might be slightly faster in some cases, str_contains() often leads to more readable and self-explanatory code, especially for developers unfamiliar with the nuances of strpos() returning 0 for a match at the beginning of the string.strpos(). If you need a case-insensitive search, use stripos(). If you need to match a whole word, use preg_match(). Otherwise, str_contains() is a good default choice for PHP 8 and above.| Method | PHP Version | Description | Case-Sensitive |
|---|---|---|---|
str_contains($string, $word) |
8+ | Returns true if $string contains $word, otherwise false. |
Yes |
strpos($string, $word) |
7 and earlier | Returns the position of $word in $string. Returns false if not found. Use !== false for comparison. |
Yes |
Notes:
stripos() instead of strpos().preg_match().In conclusion, PHP offers multiple ways to check if a string contains a specific word. For PHP 8 and above, str_contains() provides a straightforward solution. For earlier versions, strpos() is a reliable option, remembering to compare its return value with !== false. For case-insensitive searches, stripos() is the appropriate choice. When searching for a whole word, regular expressions with preg_match() and word boundaries (\b) are recommended. The best method depends on the specific needs of your application, considering factors like PHP version, case sensitivity, and whole-word matching. Always prioritize code readability and security, especially when handling user-provided data.
str_contains - Manual - PHP | PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
How do I check if a string contains a specific word in PHP? | Sentry | The Problem How do I check if a string contains a specific word in PHP? The Solution Since PHP 8, we can use the str_contains() function to check if a…
How to Check If a String Contains a Specific Word in PHP | Answer: Use the PHP strpos() Function. You can use the PHP strpos() function to check whether a string contains a specific word or not. The strpos() function ...
How To Check If A PHP String Contains A Specific Word | Learn how to check if a specific word is present in a PHP string using simple language and straightforward code examples.
How to Check if a String Contains a Specific Word in PHP? | Check if a string contains a specific word in PHP using the strpos() or str_contains() function. Learn how to efficiently search for substring matches in a string.
PHP: How to check if a string contains a specific word? | mixable Blog | When working with strings in PHP, you can use many handy methods for manipulation. Sometimes you only want to check for the string contents.
How to check if a string contains a substring in PHP? | ReqBin is the most popular online API testing tool for REST, SOAP and HTTP APIs.
How to check if a String Contains a Substring in PHP ... | A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.