substr_count() 函数计算子串在字符串中出现的次数。
注释:子串是区分大小写的。
注释:该函数不计数重叠的子串(参见例子 2)。
注释:如果 start 参数加上 length 参数大于字符串长度,则该函数生成一个警告(参见例子 3)。
语法
substr_count(string,substring,start,length)
string 必需。规定被检查的字符串。
substring 必需。规定要搜索的字符串。
start 可选。规定在字符串中何处开始搜索。
length 可选。规定搜索的长度。
例子 1使用所有的参数:
$str = "This is nice";
echo strlen($str)."
"; // 使用 strlen() 来返回字符串长度 // 12
echo substr_count($str,"is")."
"; // 字符串中 "is" 出现的次数 // 2
echo substr_count($str,"is",2)."
"; // 字符串缩减为 "is is nice" // 2
echo substr_count($str,"is",3)."
"; // 字符串缩减为 "s is nice" // 1
echo substr_count($str,"is",3,3)."
"; // 字符串缩减为 "s i" // 0
?>
例子 2重叠的子串:
$str = "abcabcab";
echo substr_count($str,"abcab"); // 此函数不会对重叠的子字符串计数
// 输出 1
?>
例子 3如果 start 和 length 参数超过字符串长度,则该函数会输出一个警告:
$str = "This is nice";
echo substr_count($str,"is",3,9);
// 因为长度值超过字符串的长度(3 + 9 大于 12),使用会输出一个警告。
// 经测试没有输出警告
?>
示例四:substr_count是区分大小写的,怎样实现不区分大小写呢?
$s1 = "PHP,php,javascript,PHP";
$s1 = strtolower($s1);
$s3 = "php";
$res2 = substr_count($s1, $s3);
echo("php出现的次数:".$res2);
?>
示例五:php计算字符出现次数不区分大小写
$str = 'nPPpc';
$str1 = strtolower($str);
$list = array();
for ($i = 0;$i < strlen($str1);$i++) {
if (!in_array($str1[$i], $list)) {
$list[] = $str1[$i];
}
}
$info = array();
for ($n = 0;$n < count($list);$n++) {
$info[$n]['str'] = $list[$n];
$info[$n]['count'] = substr_count($str1, $list[$n]);
}
var_dump($info);
// array (size=3)
// 0 =>
// array (size=2)
// 'str' => string 'n' (length=1)
// 'count' => int 1
// 1 =>
// array (size=2)
// 'str' => string 'p' (length=1)
// 'count' => int 3
// 2 =>
// array (size=2)
// 'str' => string 'c' (length=1)
// 'count' => int 1
?>