laravel框架实现敏感词汇过滤功能示例


Posted in PHP onFebruary 15, 2020

本文实例讲述了laravel框架实现敏感词汇过滤功能。分享给大家供大家参考,具体如下:

最近项目有需求,要对用户的签名,回复进行敏感词检测,然后搜到了一个好用的扩展,分享给大家。

https://github.com/FireLustre/php-dfa-sensitive

通过 composer 进行安装:

composer require lustre/php-dfa-sensitive

然后在 app 目录下创建 Services ,并添加 SensitiveWords.php

<?php
namespace App\Services;
use DfaFilter\SensitiveHelper;
class SensitiveWords
{
  protected static $handle = null;
  private function __construct()
  {
  }
  private function __clone()
  {
  }
  /**
   * 获取实例
   */
  public static function getInstance($word_path = [])
  {
    if (!self::$handle) {
      //默认的一些敏感词库
      $default_path = [
        storage_path('dict/bk.txt'),
        storage_path('dict/fd.txt'),
        storage_path('dict/ms.txt'),
        storage_path('dict/qt.txt'),
        storage_path('dict/sq.txt'),
        storage_path('dict/tf.txt'),
      ];
      $paths = array_merge($default_path, $word_path);
      self::$handle = SensitiveHelper::init();
      if (!empty($paths)) {
        foreach ($paths as $path) {
          self::$handle->setTreeByFile($path);
        }
      }
    }
    return self::$handle;
  }
  /**
   * 检测是否含有敏感词
   */
  public static function isLegal($content)
  {
    return self::getInstance()->islegal($content);
  }
  /**
   * 敏感词过滤
   */
  public static function replace($content, $replace_char = '', $repeat = false, $match_type = 1)
  {
    return self::getInstance()->replace($content, $replace_char, $repeat, $match_type);
  }
  /**
   * 标记敏感词
   */
  public static function mark($content, $start_tag, $end_tag, $match_type = 1)
  {
    return self::getInstance()->mark($content, $start_tag, $end_tag, $match_type);
  }
  /**
   * 获取文本中的敏感词
   */
  public static function getBadWord($content, $match_type = 1, $word_num = 0)
  {
    return self::getInstance()->getBadWord($content, $match_type, $word_num);
  }
}

然后我们就可以在项目中,使用 SensitiveWords::getBadWord() 来获取文本中是否有敏感词。

$bad_word = SensitiveWords::getBadWord($content);
if (!empty($bad_word)) {
  throw new \Exception('包含敏感词:' . current($bad_word));
}

在 storage 目录下创建 dict 目录存放敏感词词库,bk.txt .....等等,这些词库都是我在网上下载的。

点击此处本站下载

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
图象函数中的中文显示
Oct 09 PHP
php生成局部唯一识别码LUID的代码
Oct 06 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 #PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 #PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 #PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 #PHP
thinkphp5框架路由原理与用法详解
Feb 11 #PHP
php数组指针函数功能及用法示例
Feb 11 #PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 #PHP
You might like
php通用防注入程序 推荐
2011/02/26 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP7.0版本备注
2015/07/23 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
javascript实现日历效果
2019/06/17 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
Python tkinter label 更新方法
2018/10/11 Python
python3的输入方式及多组输入方法
2018/10/17 Python
python实现大转盘抽奖效果
2019/01/22 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
小学防溺水制度
2014/01/29 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
院系推荐意见
2015/06/05 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs