substr_count() 函数的基本语法如下:
substr_count(string $haystack, string $needle, int $offset = 0, int $length = NULL): int
$haystack:要搜索的主字符串。
$needle:要查找的子字符串(或单个字符)。
$offset:可选参数,指定从哪个位置开始查找(默认是从字符串的开头开始)。
$length:可选参数,指定查找的最大长度(默认查找整个字符串)。
该函数返回一个整数,表示 $needle 在 $haystack 中出现的次数。如果 $needle 不存在于 $haystack 中,则返回 0。
假设我们有一个字符串,我们想要统计其中某个字符的出现次数,下面是一个简单的例子:
<?php
$string = "hello world, hello PHP!";
$char = "o";
// 使用 substr_count 函数统计字符 "o" 出现的次数
$count = substr_count($string, $char);
echo "字符 '$char' 出现的次数是: $count"; // 输出:字符 'o' 出现的次数是: 3
?>
在上面的代码中,我们统计了字符 "o" 在字符串 "hello world, hello PHP!" 中出现的次数,结果输出为 3。
除了统计单个字符出现次数外,substr_count() 也可以用来统计子字符串在目标字符串中出现的次数。举个例子:
<?php
$string = "abcabcabcabc";
$substring = "abc";
// 使用 substr_count 函数统计子字符串 "abc" 出现的次数
$count = substr_count($string, $substring);
echo "子字符串 '$substring' 出现的次数是: $count"; // 输出:子字符串 'abc' 出现的次数是: 4
?>
在这个例子中,我们统计了子字符串 "abc" 在字符串 "abcabcabcabc" 中出现的次数,输出结果为 4。
substr_count() 函数还支持 offset 和 length 参数,允许我们限制查找范围。举个例子:
<?php
$string = "hello world, hello PHP!";
$char = "o";
// 从索引位置 5 开始查找,最多查找 10 个字符
$count = substr_count($string, $char, 5, 10);
echo "字符 '$char' 从索引 5 开始,最多查找 10 个字符,出现的次数是: $count"; // 输出:字符 'o' 从索引 5 开始,最多查找 10 个字符,出现的次数是: 1
?>
在此示例中,我们从字符串的第 5 个字符开始,限制查找的最大长度为 10 个字符,因此我们只统计了在 "world, hello PHP!" 部分的字符 "o" 的出现次数,结果为 1。
substr_count() 函数区分大小写,因此 "o" 和 "O" 被认为是不同的字符。如果需要不区分大小写的查找,可以先将字符串转换为统一的大小写,例如使用 strtolower() 或 strtoupper()。
例如:
<?php
$string = "Hello World, hello PHP!";
$char = "o";
// 将字符串转换为小写后再查找
$count = substr_count(strtolower($string), strtolower($char));
echo "字符 '$char' 在不区分大小写的情况下出现的次数是: $count"; // 输出:字符 'o' 在不区分大小写的情况下出现的次数是: 3
?>
如果 $needle 是空字符串,substr_count() 会返回 0。这是因为一个空字符串无法作为子字符串来统计。