敏感词过滤的php类库
<?php class Logic_BlackWord { const APP_FORUM = 1; const APP_BLOG = 2; const APP_VOTE = 3; public function getHitList($txt) { $hitList = array(); $max = $this->getMax(); if($max) { $size = 1000; $last = ceil($max/$size); for($page=1;$page<=$last;$page++) { $result = $this->getHitListByPage($txt,$page,$size); if($result) $hitList = array_merge($hitList,$result); } } $hitList2 = array(); foreach($hitList as $hit=>$type) { $hitList2[$type][] = $hit; } return $hitList2; }
本类库的敏感词替换算法,效率比str_replace高4倍(附6仟个敏感词),这个类库是没有学习过Trie树的时候写的,之后我接触了AC算法,我的算法和AC是类似的结构和逻辑,都是利用树,空间换时间,对搜索/替换海量数据帮助很明显。
strtr是KMP算法的代表,在对待海量词汇上面,并无优势,并且每次都要加载词库到内存。
使用AC算法写成扩展,将词库加载内存中,是最好的处理方式。
所以badword.src.php可供学习AC算法、学习查找替换等。
免责声明
本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn
相关文章

12 Jan 2025
Oracle 数据库中布尔数据类型的可用性与其他 RDBMS(例如提供 BIT 数据类型的 Microsoft SQL Server)不同,Oracle 数据库...

28 Dec 2024
PHP 库很方便,因为可以从应用程序中的任何位置访问它们:从插件、组件模型、模块等。如果有人已经解决了类似的问题并将其设计为库(甚至更新了它),那就有意义了

04 Mar 2025
本文研究了Oracle数据库细分类型(数据,索引,回滚,临时),其性能含义和管理。 它强调根据工作量和数据特征选择适当的段类型,以提高最佳效率

11 Nov 2024
为什么需要类型保护?探索不同类型及其用例 在 TypeScript 中,类型防护在使代码库更加可靠、对开发人员更友好方面发挥着重要作用。它们允许开发人员缩小范围,从而帮助确保类型安全


热工具

热门文章
刺客信条阴影:贝壳谜语解决方案
28 Mar 2025
手游攻略
Windows 11 KB5054979中的新功能以及如何解决更新问题
03 Apr 2025
故障排查
在哪里可以找到原子中的起重机控制钥匙卡
28 Mar 2025
手游攻略
如何修复KB5055523无法在Windows 11中安装?
10 Apr 2025
故障排查
Inzoi:如何申请学校和大学
02 Apr 2025
手游攻略