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 相关文章推荐
php网页后退不再出现过期
Mar 08 PHP
PHP 金额数字转换成英文
May 06 PHP
php trim 去除空字符的定义与语法介绍
May 31 PHP
基于php 随机数的深入理解
Jun 05 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
php调用新浪短链接API的方法
Nov 08 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
php计算税后工资的方法
Jul 28 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
Laravel 连接(Join)示例
Oct 16 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中循环语句的用法介绍
2012/01/30 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
xml转json的js代码
2012/08/28 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
python继承和抽象类的实现方法
2015/01/14 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Windows下python3.7安装教程
2018/07/31 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
中学生学习生活的自我评价
2013/10/26 职场文书
红色经典观后感
2015/06/18 职场文书
入党自传范文2015
2015/06/26 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
python如何将mat文件转为png
2022/07/15 Python