时间:2021-05-26
本文实例讲述了laravel框架实现敏感词汇过滤功能。分享给大家供大家参考,具体如下:
最近项目有需求,要对用户的签名,回复进行敏感词检测,然后搜到了一个好用的扩展,分享给大家。
https://github.com/FireLustre/php-dfa-sensitive
通过 composer 进行安装:
composer require lustre/php-dfa-sensitive然后在 app 目录下创建 Services ,并添加 SensitiveWords.php
<?phpnamespace 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相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP实现的敏感词过滤方法。分享给大家供大家参考,具体如下:1、敏感词过滤方法/***@todo敏感词过滤,返回结果*@paramarray$li
为什么选择laravel框架,是因为laravel框架目前是Php最流行的框架,深入研究后发现和asp.netmvc框架在功能上基本上是伯仲之间。只是各自的实现
本文实例讲述了Laravel5.1框架登录和注册实现方法。分享给大家供大家参考,具体如下:关于登录和注册Laravel自带了一套组件实现了这一功能,我们只需要实
本文实例讲述了Laravel框架分页实现方法。分享给大家供大家参考,具体如下:Laravel使用的过程中,有些功能把前端页面的表达“写死了”,比如分页的翻页按钮
本文实例讲述了Laravel框架基于自带的用户系统实现登录注册及错误处理功能。分享给大家供大家参考,具体如下:一、默认Laravel不会自动帮你装上用户系统,二