substr_count()是php中统计子字符串出现次数的内置函数,区分大小写,支持offset和length参数限定范围,不支持重叠匹配,适用于关键词频次统计等轻量任务。

substr_count() 是 PHP 中专门用于统计子字符串在主字符串中出现次数的内置函数,简单高效,无需正则即可完成关键词频次统计。
基本用法与参数说明
语法为 substr_count($haystack, $needle, $offset, $length):
- $haystack:要搜索的原始字符串
- $needle:要查找的关键词(区分大小写)
- $offset(可选):从第几个字符开始搜索(从 0 开始计数)
- $length(可选):限定搜索范围的长度(配合 offset 使用)
大小写敏感与常见误区
该函数默认严格区分大小写。例如:
substr_count("Hello World hello", "hello") → 返回 1(只匹配末尾小写 hello)substr_count("Hello World HELLO", "HELLO") → 返回 1
如需忽略大小写,需先统一转换:
- 用 mb_strtolower()(推荐,支持多字节字符如中文、emoji)
- 或 strtolower()(仅限 ASCII)
- 再调用 substr_count()
实测可用的典型场景
适用于日志分析、内容关键词密度检测、敏感词过滤初筛等轻量统计任务:
- 统计某篇文章中“PHP”出现次数:substr_count($content, "PHP")
- 检查用户输入是否含多个“http://”:substr_count($input, "http://") > 2
- 判断 JSON 字符串中某个字段名出现频次(注意避免误匹配嵌套值)
注意:它不支持重叠匹配(如 substr_count("aaaa", "aa") 返回 2,不是 3),也不解析语义,纯按字面逐个扫描。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











