首页 PHP 库 其它类库 敏感词过滤的php类库
敏感词过滤的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

相关文章

如何使用自连接从自引用表中检索数据? 如何使用自连接从自引用表中检索数据?

13 Jan 2025

了解 SELF JOIN 及其应用程序在数据库管理领域中,SELF JOIN 是一种特殊类型的联接操作,它允许...

Oracle 数据库现在支持布尔数据类型吗? Oracle 数据库现在支持布尔数据类型吗?

12 Jan 2025

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

在 Joomla 中连接第三方 PHP 库 在 Joomla 中连接第三方 PHP 库

28 Dec 2024

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

为什么要从 Python 中的'object”继承:一个类继承问题 为什么要从 Python 中的'object”继承:一个类继承问题

24 Dec 2024

了解 Python 类继承在 Python 中,类可以从其他类继承,这使它们能够访问父类的属性并...

为什么需要类型保护?探索不同类型及其用例 为什么需要类型保护?探索不同类型及其用例

11 Nov 2024

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

Python 如何同时实现强类型和动态类型? Python 如何同时实现强类型和动态类型?

05 Nov 2024

Python 的强动态类型静态类型常见于 C 等语言中,它预先定义变量的类型,限制其...

See all articles