php8.5
Home/ Manual/ strings / functions/ substr_count

substr_count

PHP function Edit on GitHub ✎

(PHP 4, PHP 5, PHP 7, PHP 8)

Count the number of substring occurrences

Description

substr_count(string $haystack, string $needle, int $offset = 0, int|null $length = null): int

substr_count() returns the number of times the needle substring occurs in the haystack string. Please note that needle is case sensitive.

Note

This function doesn't count overlapped substrings. See the example below!

Parameters

haystack

The string to search in

needle

The substring to search for

offset

The offset where to start counting. If the offset is negative, counting starts from the end of the string.

length

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. A negative length counts from the end of haystack.

Return Values

This function returns an int.

Changelog

VersionDescription
8.0.0length is nullable now.
7.1.0Support for negative offsets and lengths has been added. length may also be 0 now.

Examples

A substr_count() example

php
<?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;
?>

See Also

Source: reference/strings/functions/substr-count.xml · from the official PHP manual (php/doc-en)