`
sealbird
  • 浏览: 583990 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

检测敏感词的 PHP 扩展

    博客分类:
  • php
阅读更多
敏感词过滤是我朝程序员必须具备的一种特殊技能,随着敏感词越来越多,是时候写个扩展来快速的进行敏感词检测了
使用说明

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 扩展

    "用于检测敏感词的 PHP 扩展"就是针对这一需求而设计的,它是一个名为trie_filter的PHP扩展,主要功能是快速有效地检测和过滤用户输入中的敏感词汇。 trie_filter扩展基于字典树(Trie)数据结构,字典树是一种高效...

    敏感词检测api接口源码

    `word.php`可能是实现敏感词检测算法的文件,它可能包含了匹配敏感词的函数或者类。这些功能可能包括但不限于正则表达式匹配、字典匹配或者Aho-Corasick算法等,以高效地在大量文本中查找敏感词汇。它也可能包含了对...

    网站敏感词检测源码.rar

    网站敏感词检测是网络安全与信息审查中的重要环节,主要用于防止用户发布含有违规或不适宜内容的信息。本资源“网站敏感词检测源码.rar”提供了一种解决方案,包含了四种不同的算法,帮助开发者实现这一功能。接下来...

    php扩展过滤敏感词

    php扩展:trie_filter 过滤敏感词。1.生成敏感词文件,2.加载使用敏感词库,3.查找敏感词。可以循环查找替换,最后输出替换后的文本

    敏感词检测——C语言代码

    本代码实现了敏感词检测。findcode是一个用来将敏感词与句子中排序后的单词先按字母顺序排序然后进行逐一比较的函数;如果两者相同,则return1;用数组下标0-25分别表示a-z字母,对应的每个下标对应的数组元素的值...

    敏感词检测.zip windows免安装版

    敏感词检测程序,离线版,不需联网,可用于检测文本是否包含了敏感词

    短信敏感词检测工具

    短信敏感词检测工具是一款专为短信内容筛查设计的软件,主要功能是检查短信文本中是否包含有可能引发法律、道德或安全问题的词汇。在信息化社会,短信作为一种常见的沟通方式,可能涉及个人信息保护、商业秘密、违法...

    C#高性能敏感词检测过滤组件

    - **动态加载词库**:为了方便更新和扩展敏感词库,组件可能支持动态加载和卸载,这样无需重新编译程序就能添加或删除敏感词。 应用场景广泛,例如: - **社交媒体监控**:在社交媒体平台,防止不良信息传播,对...

    php敏感词过滤案例

    php敏感词过滤案例,很简单很实用,现在网站好多关键词都是国家禁止的词,收集网络许多资料都不太好,为天下网自己写了一个,

    thinkphp5敏感词过滤类

    一旦状态机构建完成,就可以用它来检测用户输入,如果发现匹配的敏感词,系统会进行相应的处理,如替换、删除或提示用户修改。 具体到提供的压缩包文件,名为"DfaFilter"的文件可能是一个PHP类或者脚本,实现了DFA...

    java做敏感词监测

    这个压缩包文件可能包含了一套后端实现敏感词检测的解决方案。下面我们将详细探讨Java如何进行敏感词监测,以及相关的重要知识点。 首先,敏感词监测的核心是建立一个敏感词库。这个词库通常包含了一系列禁止或限制...

    php 敏感词过滤 源码下载

    PHP扩展,专门用于敏感词检测。速度快,能返回敏感词的偏移量和内存空间。只支持linux系统,PHP5.2测试通过。但是需要注意字符集。详细使用过程可参考:...

    java敏感词检索工具

    9. **接口设计**:为了让敏感词检索工具易于使用,需要设计清晰的API接口,允许用户输入待检测文本,返回包含敏感词的结果或者布尔值表示是否存在敏感词。 10. **性能测试与调优**:开发完成后,进行性能测试(如...

    C++中英文敏感词检测工具类

    总的来说,这个C++的敏感词检测工具类具有良好的可扩展性和实用性,通过其提供的功能,开发者可以在处理文本数据时有效地规避敏感信息的风险,从而在满足法规要求的同时,保护用户的隐私和企业的声誉。

    Python基于Scrapy的页面敏感词检测工具源码.zip

    Python基于Scrapy的页面敏感词检测工具是一种高效的数据抓取和处理框架,它结合了Scrapy库的强大功能,用于从网页中抓取信息并进行特定的敏感词检测。本工具适用于那些需要监控网络内容,避免违规信息发布的场景,如...

    java四种网站敏感词检测.zip

    在Java开发中,网站敏感词检测是至关重要的一个环节,特别是在处理用户生成内容(UGC)时,如论坛、评论区等。为了确保网络环境的健康和合法,开发者需要有效地过滤掉涉及违法、违规或者不适宜的词汇。本压缩包包含...

    php实现敏感词过滤类.zip

    在这个"php实现敏感词过滤类.zip"压缩包中,我们有一个PHP类,用于处理敏感词过滤任务。这个类可能会包含以下核心功能: 1. **初始化**: 类的初始化方法可能接受一个敏感词列表作为参数,将其加载到内部的数据结构...

    js 检测敏感词

    敏感词检测 testbadword.html

    PHP 过滤敏感词 工具

    6. **敏感词替换**:当检测到敏感词时,可以选择替换为星号或其他无害字符,以达到模糊显示的效果。这可以通过`str_replace()`函数实现。 7. **性能优化**:如果敏感词库非常大,简单的线性搜索可能会导致效率低下...

Global site tag (gtag.js) - Google Analytics