敏感词过滤是我朝程序员必须具备的一种特殊技能,随着敏感词越来越多,是时候写个扩展来快速的进行敏感词检测了
使用说明
1. 安装 libdatrie
tar zxf libdatrie-0.2.4.tar.gz
cd libdatrie-0.2.4
./configure --prefix=/usr/local
make
make install
2. 安装 trie_filter 扩展
tar zxf trie_filter-1.0.0.tar.gz
cd trie_filter-1.0.0
phpize
./configure --with-php-config=/path/to/php-config
make
make install
记得修改你的 php.ini 文件,启用 trie_filter 扩展。extension=trie_filter.so
3. 生成词典预处理工具(dpp.c 在 trie_filter-1.0.0 里面)
gcc -O dpp dpp.c -ldatrie
4. 生成敏感词词典
首先你需要把需要检测的敏感词写入到一个文本文件中,每行一个敏感词,然后使用上一步生成的 dpp 程序处理这个文本文件来生成词典
./dpp txt_file_path dict_file_path
5. 使用扩展
扩展接口很简单,只有两个函数:
1) trie_filter_load($path_to_dict)
用来载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL
2) trie_filter_search($trie, $text)
用来检测一段文本中是否含有词典中定义的敏感词,$trie 是上一个函数返回的 Trie Filter 句柄,$text 是欲检测的文本
如果检测到敏感词则返回一个数组,数组第一个元素指出检测到的敏感词在 $text 中的偏移量,第二个元素指出该敏感词的长度(bytes)
如果没有检测到敏感词,则返回一个空数组
扩展的速度怎么样
一个字,很快!扩展的检测算法基于 Double Array Trie Tree,查找单一关键字的时间复杂度为 O(1),查找整段文本的时间复杂度为 O(n),n 为文本的长度,而且检测的速度不会因为敏感词的增加而降低。
注意事项
1. 扩展把词典和要检测的文本都当做平凡的字节流处理,因此可以无视字符集的问题。但需要注意的是词典的编码需要和检测文本的编码一致,例如词典为 UTF-8 编码而你需要检测的文本为 GBK 编码,这就要求你在调用 trie_filter_search() 函数之前通过 iconv 或者 mb_xxx 函数转换一下编码
2. 目前只在 linux + php-5.2 环境下测试通过,不支持 windows,也没有支持的计划
分享到:
相关推荐
"用于检测敏感词的 PHP 扩展"就是针对这一需求而设计的,它是一个名为trie_filter的PHP扩展,主要功能是快速有效地检测和过滤用户输入中的敏感词汇。 trie_filter扩展基于字典树(Trie)数据结构,字典树是一种高效...
PHP扩展,专门用于敏感词检测。速度快,能返回敏感词的偏移量和内存空间。只支持linux系统,PHP5.2测试通过。但是需要注意字符集。详细使用过程可参考:...
随着全球化的发展,跨语言的内容交流愈发频繁,这就要求敏感词检测系统能够支持多种语言,以适应不同国家和地区的用户需求。本文档所描述的“基于多语言支持的敏感词检测与过滤系统设计源码”项目,正是为满足这一...
基于Double-Array Trie树的垃圾邮件过滤器的php扩展,它可以检测短信中是否存在垃圾邮件。 过滤关键词扩展,用于检查一段文本中是否出现敏感词,基于Double-Array Trie树实现。 更多详情、使用方法,请下载后阅读...
通过本文的内容可以了解到,Laravel配合php-dfa-sensitive扩展包,可以高效地实现敏感词过滤功能。这不仅有助于提高网站的安全性,还可以提升用户体验。学习和掌握这种功能对于想要深入学习Laravel框架的开发者来说...
5. **操作模式**:可以设置库在检测到敏感词汇时执行的操作,如替换为星号(*)、替换为其他无害的词、或者完全删除含有敏感词的文本。 6. **API 使用**:`php-badwords` 提供了简单易用的 API 接口,开发者可以通过...
这种方式可以完全避开微信对于外部链接的检测和限制,尤其适用于那些容易触发微信敏感词检测的内容。 ##### 2. 应用场景 这些技术的应用场景非常广泛,尤其适用于以下几种情况: - **营销推广**:企业或个人在...
3. 内容审核与过滤:在社交媒体环境中,内容审核至关重要,系统应包含关键词过滤、敏感词检测等功能,以防止不良信息的传播。 4. 性能优化:面对大量并发请求,系统需要进行性能优化,如使用缓存技术(如Redis或...
敏感词将过滤成*星号新增系统安装时php版本小于7.0环境下检测always_populate_raw_post_data是否支持新增开启打印、导出EXCEL功能新增域名绑定分站,后台新增域名管理板块新增、调整部分标签,使用更直观更合理新增...