之前想给一个站做违规词检测,懒得自己写,就给朋友送了份礼物(正经礼物)。让他收了以后我再说件事给他听。毕竟都收了礼,总得帮点儿忙,这样以来,他就是“我的人了”(滑稽)。顺理成章委托他帮忙做一下这个功能,结果他以为是大型词库,为了性能要求,用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打印内容输出,还可以返回布尔值true和false 将实例中的判断改为下方的代码
if(判断内容){
return true;
} else {
return false;
}
用自定义函数判断后得出的布尔值决定输出内容代码
if(wjc_wxs("这是一个含有关键词的句子,可以用变量")){
echo "含有关键词";//打印提示信息
} else {
echo "不含有关键词";//打印提示信息
}
相关文章
2023-06-07 21:42:42,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群:
399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
登录后可快速点此处反馈,点击登录











请登录后查看评论内容