!
优惠码:wxsnote
信息

PHP输入句子与txt文档词库中的每个词匹配判断(敏感词拦截)

之前想给一个站做违规词检测,懒得自己写,就给朋友送了份礼物(正经礼物)。让他收了以后我再说件事给他听。毕竟都收了礼,总得帮点儿忙,这样以来,他就是“我的人了”(滑稽)。顺理成章委托他帮忙做一下这个功能,结果他以为是大型词库,为了性能要求,用go语言开发了程序?说起来,go的性能确实好。如果真是大型词库匹配,那服务器肯定没压力。站也用上了,感觉不错,但是这就是一个小站罢了,没必要这么高的要求。为了调用让站使用程序,用了某些不安全的函数,还是弃用吧。最终还是我自己想了一下逻辑,写了个PHP api,下面分享一下。

思路

使用了下面的函数用于获取txt文本中的关键词,()中填写目录可填写:文件名(如果和PHP实例代码在同目录),文件url地址(不推荐),实例中使用的是$_SERVER['DOCUMENT_ROOT']函数获取网站的目录后拼接在文件目录前,使用绝对路径,这种方式最好

file_get_contents()

使用下方函数将词库中的词分割为数组,毕竟php也没办法直接用词库嘛

explode()

使用下方函数循环遍历数组,用于句子和每个词匹配

foreach()

使用下方函数,判断结果并输出信息

if()

PHP实例及注释

可能会用到的代码

我们还可以把实例代码做成自定义函数,作用到全局方便调用

function wjc_wxs($txt) {
  // 使用$txt来操作自定义函数中的变量
 $jz = $txt;//代码中原来是($jz = "这是一个含有关键词的句子";),把原来的代码替换为注释前的代码即可
//代码内容复制到这里
}

如果希望在多个PHP文件中共享这个自定义函数,可以将它们定义在单独的文件中,如自定义函数放在文件functions.php中,并使用include()函数将其引入到需要使用的文件中

其它PHP文件调用自定义函数

include 'functions.php';//引入functions.php文件,如果自定义函数和调用在同PHP文件,那可以不加此代码
// 调用自定义函数并传递信息,()内可以是变量,用于输入句子
 wjc_wxs("这是一个含有关键词的句子");

实例中是输出内容,这样其实不太好。毕竟做成判断函数了,全局应用可以考虑输出为布尔值,然后根据函数中判断得出的布尔值再做决定输出什么内容

关于输出,你可以使用echo 或 print打印内容输出,还可以返回布尔值truefalse 将实例中的判断改为下方的代码

if(判断内容){
        return true;
    } else {
        return false;
    }

用自定义函数判断后得出的布尔值决定输出内容代码

if(wjc_wxs("这是一个含有关键词的句子,可以用变量")){
        echo "含有关键词";//打印提示信息
    } else {
        echo "不含有关键词";//打印提示信息
    }

相关文章

温馨提示:本文最后更新于2023-06-07 21:42:42,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群:399019539联系群主。
友情赞助

如果你喜欢我的内容,可以赞助我哦!你的一点点心意,是我不断前进的动力!
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 共9条

请登录后发表评论

    请登录后查看评论内容