PHP 字符串 substr_count() 函数

2024年9月4日 | 3 分钟阅读

substr_count() 是 PHP 的内置函数。它计算子字符串在给定字符串中出现的次数。substr_count() 是一个区分大小写的函数,这意味着它对大写字母和小写字母的处理方式不同。

例如 - 子字符串 "cha" 不存在于字符串 "CHaru" 中。

注意: substr_count() 是一个区分大小写的函数。

此函数提供计算子字符串在主字符串中出现次数的功能。它还提供在给定索引范围内搜索子字符串的选项。如果为搜索指定的 start 和 length 值大于传递的字符串,则会向用户返回警告。PHP 4以上版本支持此函数。

注意: substr_count() 函数不计算重叠的子字符串。(请参阅示例 3)。

语法

substr_count() 的语法如下,它接受四个参数,两个字符串和两个整数类型的值。

参数

$string(必需): $string 参数是主字符串参数,其中计算子字符串的出现次数。它是 substr_count() 函数的强制参数。

$substring(必需): 传递到此参数中的值将在 $string 参数中搜索,并返回子字符串的出现次数。它也是 substr_count() 函数的强制参数。

$start(可选): 此参数包含一个整数值。它指定从何处开始计数。$start 是此函数的可选参数。如果传递到此参数中的值为负数,则它将从字符串的末尾开始计数。

$length(可选): 此参数是可选参数,取决于 $start 参数。如果 $start 和 $length 加起来($start+$length)大于 $string 的长度,substr_count() 将生成警告。负长度始终从字符串的末尾开始计数。

返回值

substr_count 返回一个整数,这意味着它返回子字符串在主字符串中出现的次数。

更新日志

  • 在 PHP 5.1.0 中,添加了两个新参数,即 $start 和 $length。
  • 从 PHP 7.1.0 开始,$start 和 $length 也支持负值。Length 现在也可以为 0。

示例

下面给出了一些示例。借助这些示例,学习 substr_count() 函数在程序中的实际实现。

示例 1: 没有可选参数的程序。

输出

在上面的示例中,主字符串中找到了 2 次 "Good" 子字符串。

2

示例 2: 传递 $start 参数时的程序。

输出

在上面的示例中,主字符串中只找到一次 "Good" 子字符串,因为搜索是从第 5位置开始的。

1

示例 3: 同时传递 $start 和 $length 参数时的程序。

输出

在上面的示例中,主字符串中没有找到 "Good" 子字符串,因为搜索是从第 5位置到第 15位置($start+$length)进行的。

0

示例 4: 区分大小写

输出

在上面的示例中,主字符串中没有找到 "LIFE" 子字符串,因为 substr_compare() 是一个区分大小写的函数。

0

示例 5

输出

这里发生了一个警告,因为 start + length > strin,即 (5+12 > 15)。$start + $length 参数的长度不应超过主字符串的长度。

Warning: substr_count(): Invalid length value in C:\xampp\htdocs\xampp\PMA\substr_count.php on line 4

示例 6: 重叠子字符串

输出

它返回 1,因为它没有计算重叠的子字符串。

1

下一个主题PHP 字符串函数