substr_count
(PHP 4, PHP 5, PHP 7, PHP 8)
Count the number of substring occurrences
Description
substr_count() returns the number of times the needle substring occurs in the haystack string. Please note that needle is case sensitive.
This function doesn't count overlapped substrings. See the example below!
Parameters
haystackThe string to search in
needleThe substring to search for
offsetThe offset where to start counting. If the offset is negative, counting starts from the end of the string.
lengthThe maximum length after the specified offset to search for the substring. A
ValueErroris thrown if the offset plus the length is greater than thehaystacklength. A negative length counts from the end ofhaystack.
Return Values
This function returns an int.
Errors/Exceptions
Throws a ValueError if needle is empty, if offset is outside of haystack, or if length is outside of the part of haystack that follows offset.
Changelog
| Version | Description |
|---|---|
| 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. |
Examples
A substr_count() example
<?php
$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;
?>