substr_count()
substr_count() — Count the number of substring occurrences.
Built-in function of PHP 8.5. The manual lists it as available in PHP 4, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
substr_count() returns the number of times the needle substring occurs in the haystack string. Please note that needle is case sensitive.
Signature
substr_count(string $haystack, string $needle, int $offset = 0, ?int $length = null): int
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $haystack | string | The string to search in |
| $needle | string | The substring to search for |
| $offset | int | The offset where to start counting. If the offset is negative, counting starts from the end of the string. |
| $length | ?int | The maximum length after the specified offset to search for the substring. A ValueError is thrown if the offset plus the length is greater than the haystack length. A negative length counts from the end of haystack. |
Return value
This function returns an int.
Example
A runnable snippet:
$text = 'This is a test'; echo strlen($text), PHP_EOL; // 14 echo substr_count($text, 'is'), PHP_EOL; // 2 // the string is reduced to 's is a test', so it prints 1 echo substr_count($text, 'is', 3), PHP_EOL; // the text is reduced to 's i', so it prints 0 echo substr_count($text, 'is', 3, 3), PHP_EOL; // prints only 1, because it doesn't count overlapped substrings $text2 = 'gcdgcdgcd'; echo substr_count($text2, 'gcdgcd'), PHP_EOL; // throws an exception because 5+10 > 14 echo substr_count($text, 'is', 5, 10), PHP_EOL;
Changelog
| Version | Change |
|---|---|
| 8.0.0 | Now throws a ValueError instead of raising an E_WARNING and returning false when needle is empty or offset or length is out of range. |
| 8.0.0 | length is nullable now. |
| 7.1.0 | Support for negative offsets and lengths has been added. length may also be 0 now. |
See also
count_chars(), strpos(), substr(), strstr()
All PHP 8.5 built-in functions
Reference card built from the PHP manual page substr_count() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.