搜索
首页PHP 库Other libraries敏感词过滤的php类库
敏感词过滤的php类库

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?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