PHP屏蔽关键字实现方法
2024-09-01 08:43:33
方法一:
思路
用正则去匹配关键字,把关键字用别的字符替换:
1
2
3
|
$str = "/你大爷|你麻痹|什么玩意|SB|你他妈/" ; // 关键字正则字符串 $string = "你他妈干什么玩意了 SB" ; // 文本字符串 echo preg_replace( $str , "*" , $string ); //preg_replace() 执行一个正则表达式的匹 |
方法二:
思路
1.把关键字放到一个txt文档中 要用一定的符合分隔开 ,用file_get_contents() 函数将关键字文档读入
2.用函数explode() 把字符串分割成数组 循环数组 strpos() 查找匹配关键字
header('content-type:textml; charset=utf-8;');
function strPosFuck($content){
$fuck = file_get_contents('keyWords.txt'); // 读取关键字文本信息
$content = trim($content); $fuckArr = explode("\n",$fuck); // 把关键字转换为数组
for ($i=0; $i < count($fuckArr) ; $i++){
// $fuckArr[$i] = trim($fuckArr[$i]);
if ($fuckArr[$i] == "") {
continue; //如果关键字为空就跳过本次循环
# code...
}
if (strpos($content,trim($fuckArr[$i])) != false){
return $fuckArr[$i]; //如果匹配到关键字就返回关键字
# code...
}
}
return false; // 如果没有匹配到关键字就返回 false
}
$content = "我今天你大爷碰到一个SB";
$key = strPosFuck($content);
if ($key){
echo "存在关键字".$key;
# code...
}else{
echo "OK";
}
注意点 一定要去空 一定要去空 ,
strops() 函数返回值 要么是false 要么就是关键字的位置 判断的时候注意
方法三:
/**
* 被禁止的关键字检测
*
* @param string $string 要检测的字符串
* @param string $fileName 屏蔽关键字文件
* @return bool
*/
function banwordCheck( $string, $fileName ){
if ( !($words = file_get_contents( $fileName )) ){
die('file read error!');
}
$string = strtolower($string);
$matched = preg_match('/'.$words.'/i', $string, $result);
if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ){
if ( strlen($result[0]) == 2 ){
$matched = preg_match('/'.$words.'/iu', $string, $result);
}
if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ) {
return true;
}else{
return false;
}
}else{
return false;
}
}
$content = '测试关键字';
if ( banwordCheck($content, './banwords.txt') ){
echo "matched! ";
}else{
echo "no match! ";
}
最新文章
- 关于struts2的过滤器和mybatis的插件的分析
- Java基础-多线程编程-1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
- 单元测试 逃不开的Done 与约定
- [转]SPICE仿真软件基础(整理)
- Session一次错误记录
- jquery实现文件异步上传
- NetworkComms网络通信框架V3结构图
- PHP-FPM-failed to ptrace(PEEKDATA) pid 123: Input/output error
- 调用DEDE日期时间格式整理大全
- 在VC中集成cURL
- Android03-Activity生命周期及启动模式
- IOS UI 滚动视图 UIScrollView
- iframe交互(一)父页面自动高度
- SpringBoot系列——aop 面向切面
- 上外网tunnel手段
- MySql存储过程与函数详解
- 百度地图Api进阶教程-点聚合9.html
- iOS: block参数
- sqlserver中numeric字段截取
- nginx配置文件的性能优化