首页 > 编程语言 >php字典分词,广告违禁词模块

php字典分词,广告违禁词模块

时间:2023-02-24 16:56:29浏览次数:49  
标签:mtch word ad 违禁 file path php 分词 字典

2023年2月23日13:37:54

php版本8.0 laravel8

https://github.com/lizhichao/VicWord

composer require lizhichao/word

数据库存储违禁词

// 生成字典
public static function generateDict()
    {
        $path = self::getPath();
        if (!file_exists($path)) {
            file_put_contents($path, '');
        } else {
            unlink($path);
            file_put_contents($path, '');
        }
        $dict = new VicDict($path);

        $ad = AdDict::where('is_delete', GlobalCode::NORMAL)->get(['name']);
        if ($ad->count() > 0) {
            foreach ($ad as $v) {
                if (!empty($v->name)) {
                    $dict->add($v->name, 'n');
                }
            }
            //保存词库
            $dict->save();
        }
    }
	
	// 分词匹配字典
    public static function mateWord(string $word = '')
    {
        if (empty($word)) {
            throw new Exception('待匹配文字不能为空');
        }

        $path = self::getPath();
        if (!file_exists($path)) {
            self::generateDict();
        }
        $fc = new VicWord($path);

        $data = $fc->getWord($word);

        if (!empty($data)) {
            $mtch = [];
            foreach ($data as $k => $v) {
                if ($v['3'] == 1) {
                    $mtch[] = $v['0'];
                }
            }
            $newArr = [];
            foreach ($mtch as $value) {
                $newArr[] = sprintf("<font color='red'>%s</font>", $value);
            }

            $replaceData = str_replace($mtch, $newArr, $word);

            return $replaceData;
        } else {
            return $word;
        }
    }

标签:mtch,word,ad,违禁,file,path,php,分词,字典
From: https://www.cnblogs.com/zx-admin/p/17147651.html

相关文章

  • PHP使用ZipArchive批量打包压缩文件并下载
    PHP使用ZipArchive批量打包压缩文件,并下载。使用php自带的ZipArchive类,可以压缩或解压文件。首先需要确定已经安装了zip扩展,如果没有安装,请先安装,下载:http://pecl.php.net......
  • 快速搭建lamp环境以及httpd无法解析PHP文件,只显示PHP源码或者直接下载PHP文件的错误处
      快速搭建lamp环境以及httpd无法解析PHP文件,只显示PHP源码或者直接下载PHP文件的错误处理快速搭建lamp,使用yum安装httpd2.4以及mariadb10.1和php5.4,仅仅是测试学习用lam......
  • php 导入excel 表格里时间 进行处理
    /***[excelTimedescription]*@Author:XuXianGang*@Method:excel转换时间*@DateTime:2022-06-06T09:36:37+0800*@param[type]$days......
  • php中preg_replace_callback函数同一个正则,替换成不同内容
    可以使用php在线运行,去运行文章的代码https://www.bejson.com/runcode/php/本文实例讲述了php中preg_replace_callback函数用法。分享给大家供大家参考,具体如下:mixedpr......
  • PHP数组与XML之间的转换【转载】
    在开发中,我们经常会遇到数组与XML之间的互相转换,尤其在处理接口开发的时候经常用到,比如对方客户端POST一个XML格式的数据到服务器上,服务器上的程序要负责接收解析,还有需要将......
  • 小记:php无法登录mysql服务器
    PHP脚本连接到MySQL服务器,可能是以下几个原因:MySQL服务器没有运行或停止了。你可以尝试重启MySQL服务器。PHP扩展没有安装或启用。你需要确保安装了PHP的M......
  • PHP接入苹果支付
    Ios苹果支付流程:客户端先从苹果获取内购Id。客户端将内购id,金额、用户id等传给服务端获取一个自己服务端生成的订单号。客户端向苹果发起支付。支付成功后,客户端从本......
  • es 安装中文分词器
    1.在github搜索 elasticsearch-analysis-ik  找到与es对应版本下载我的是7.14.0  将zip包上传到es的plugins目录下解压,重启es在kibana的开发工具测试是否成......
  • [代码审计基础 15]phpmcs_v9.6 rce
    PHP:5.4.5设置调试:https://blog.csdn.net/m0_46641521/article/details/120107786版本:phpcms_v9.6.0_UTF80x01:路由分析和前一篇一样的路由,但是对输入的关键字都有了防护......
  • PHP DateTime 对象和 Date 函数的 Demo
    DateTime对象<?php//设置时间时区date_default_timezone_set('PRC');$dateFormat="Y-m-d";$dateTimeFormat="Y-m-dH:i:s";//获取当前时间$date=newDateTi......