substr_count

Count the number of substring occurrences

&reftitle.description; `int` `substr_count` `string` `haystack` `string` `needle` `int` `offset` 0 ``int``null```length`&null;

`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!

&reftitle.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`.

&reftitle.returnvalues;

This function returns an `int`.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | `length` is nullable now.
7.1.0 | Support for negative `offset`s and `length`s has been added. `length` may also be `0` now.

&reftitle.examples;

### A `substr_count` example

    <?php
    $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 substrings
    $text2 = 'gcdgcdgcd';
    echo substr_count($text2, 'gcdgcd');
    ?>

&reftitle.seealso;

- `count_chars`
- `strpos`
- `substr`
- `strstr`