搜索
首页PHP 库Other libraries敏感词过滤的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

相关文章

为什么我的 JNI 项目找不到依赖库?为什么我的 JNI 项目找不到依赖库?

21Nov2024

解决 UnsatisfiedLinkError: Can't Find Dependent Libraries in JNI Projects当开发 Java Native Interface (JNI) 项目时,您可能...

phpmyadmin不显示登录页面phpmyadmin不显示登录页面

30Oct2019

​phpmyadmin不显示登录页面解决方法:找到并打开phpMyAdmin\libraries\plugins\auth\AuthenticationCookie.class.php文件,将其中关于登录页面代码中的两处hide删除即可。

如何修复 phpMyAdmin 中的'count():参数必须是实现可数的数组或对象”错误?如何修复 phpMyAdmin 中的'count():参数必须是实现可数的数组或对象”错误?

20Oct2024

phpMyAdmin 错误:“count():参数必须是实现可数的数组或对象”您是否遇到过 phpMyAdmin 错误,指出“./libraries/sql.lib.php#601\ncount() 中的警告:参数必须是数组或对象

dacom.dll - 什么是 dacom.dll?dacom.dll - 什么是 dacom.dll?

19Oct2024

dacom.dll 在我的计算机上做什么? dacom.dll 是 Microsoft Corporation 创建的 Digital Anvil Component Libraries 使用的 DLL 文件。此过程仍在审核中。 dacom.dll 等非系统进程源自您安装的软件

用node.js显示在点矩阵LED显示器上显示图像用node.js显示在点矩阵LED显示器上显示图像

19Feb2025

关键要点 培训DMD库用于将线,形状和文本绘制到点矩阵LED显示屏上。该库可以从freetronics github存储库中下载并复制到/arduino/libraries/folder中。 Arduino SK

ctvcal.dll - 什么是 ctvcal.dll?ctvcal.dll - 什么是 ctvcal.dll?

16Oct2024

ctvcal.dll 在我的计算机上做什么? ctvcal.dll 是属于 Oracle Corporation 的 Oracle Calendar Libraries 的一个模块。 ctvcal.dll 等非系统进程源自您系统上安装的软件。由于大多数应用程序

See all articles