敏感词过滤的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
相关文章
![Oracle 数据库现在支持布尔数据类型吗?](https://img.php.cn/upload/article/001/246/273/173664622643209.jpg)
12 Jan 2025
Oracle 数据库中布尔数据类型的可用性与其他 RDBMS(例如提供 BIT 数据类型的 Microsoft SQL Server)不同,Oracle 数据库...
![在 Joomla 中连接第三方 PHP 库](https://img.php.cn/upload/article/001/246/273/173532331065396.jpg)
28 Dec 2024
PHP 库很方便,因为可以从应用程序中的任何位置访问它们:从插件、组件模型、模块等。如果有人已经解决了类似的问题并将其设计为库(甚至更新了它),那就有意义了
![为什么需要类型保护?探索不同类型及其用例](https://img.php.cn/upload/article/001/246/273/173132514453834.jpg)
11 Nov 2024
为什么需要类型保护?探索不同类型及其用例 在 TypeScript 中,类型防护在使代码库更加可靠、对开发人员更友好方面发挥着重要作用。它们允许开发人员缩小范围,从而帮助确保类型安全
![](/static/imghw/down_right.png)
![](/static/imghw/taglogo.png)
Hot Tools
![](/static/imghw/taglogo.png)
热门文章
Tales Of Graces F 重制版:所有锁定的宝箱密码
18 Jan 2025
手游攻略
崩坏:星穹铁道 - 所有金色替罪羊谜题解决方案
18 Jan 2025
手游攻略
如何修复 KB5049622 在 Windows 11 中安装失败的问题?
15 Jan 2025
故障排查
如何修复 KB5050021 在 Windows 11 中安装失败的问题?
15 Jan 2025
故障排查
Haikyuu Legends 风格指南:完整列表和最佳选择
25 Jan 2025
手游攻略