# substr_count

(PHP 4, PHP 5, PHP 7)

substr_count — 计算字串出现的次数

### 说明

substr_count ( string `$haystack` , string `$needle` [, int `$offset` = 0 [, int `$length` ]] ) : int

substr_count() 返回子字符串`needle` 在字符串 `haystack` 中出现的次数。注意 `needle` 区分大小写。

> Note:

> 该函数不会计算重叠字符串。参见下面的例子。

### 参数

`haystack`

  在此字符串中进行搜索。

`needle`

  要搜索的字符串。

`offset`

  开始计数的偏移位置。如果是负数，就从字符的末尾开始统计。

`length`

  指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 `haystack` 的总长度，则打印警告信息。 负数的长度 length 是从 `haystack` 的末尾开始统计的。

### 返回值

该函数返回整型。

### 更新日志

版本 | 说明
--- | ---
7.1.0 | 开始支持负数的 `offset` 和 `length`。
5.1.0 | 新增 `offset` 和 `length` 参数。

### 范例

Example #1 substr_count() 范例

    <?php
    $text = 'This is a test';
    echo strlen($text); // 14

    echo substr_count($text, 'is'); // 2

    // 字符串被简化为 's is a test'，因此输出 1
    echo substr_count($text, 'is', 3);

    // 字符串被简化为 's i'，所以输出 0
    echo substr_count($text, 'is', 3, 3);

    // 因为 5+10 > 14，所以生成警告
    echo substr_count($text, 'is', 5, 10);

    // 输出 1，因为该函数不计算重叠字符串
    $text2 = 'gcdgcdgcd';
    echo substr_count($text2, 'gcdgcd');
    ?>

### 参见

- count_chars() - 返回字符串所用字符的信息
- strpos() - 查找字符串首次出现的位置
- substr() - 返回字符串的子串
- strstr() - 查找字符串的首次出现