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!
The string to search in
The substring to search for
The offset where to start counting
The maximum length after the specified offset to search for the substring. It outputs a warning if the offset plus the length is greater than the haystack length.
$text = 'This is a test';
echo strlen($text); // 14
echo substr_count($text, 'is'); // 2
// the string is reduced to 's is a test', so it prints 1
echo substr_count($text, 'is', 3);
// the text is reduced to 's i', so it prints 0
echo substr_count($text, 'is', 3, 3);
// generates a warning because 5+10 > 14
echo substr_count($text, 'is', 5, 10);
// prints only 1, because it doesn't count overlapped subtrings
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');