方法一:
思路

用正则去匹配关键字,把关键字用别的字符替换:

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! ";
}

最新文章

  1. 关于struts2的过滤器和mybatis的插件的分析
  2. Java基础-多线程编程-1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
  3. 单元测试 逃不开的Done 与约定
  4. [转]SPICE仿真软件基础(整理)
  5. Session一次错误记录
  6. jquery实现文件异步上传
  7. NetworkComms网络通信框架V3结构图
  8. PHP-FPM-failed to ptrace(PEEKDATA) pid 123: Input/output error
  9. 调用DEDE日期时间格式整理大全
  10. 在VC中集成cURL
  11. Android03-Activity生命周期及启动模式
  12. IOS UI 滚动视图 UIScrollView
  13. iframe交互(一)父页面自动高度
  14. SpringBoot系列——aop 面向切面
  15. 上外网tunnel手段
  16. MySql存储过程与函数详解
  17. 百度地图Api进阶教程-点聚合9.html
  18. iOS: block参数
  19. sqlserver中numeric字段截取
  20. nginx配置文件的性能优化

热门文章

  1. Apache Tomcat Server Options 选项说明
  2. Failed to export application
  3. docker中宿主机与容器(container)互相拷贝传递文件的方法
  4. js 柯里化Currying
  5. xcode加载静态链接库.a文件总是失败
  6. 定时框架quartz的一些问题总结
  7. PS基础教程[7]如何为照片瘦身
  8. 【LIUNX】目录或文件权限,权限授予
  9. 脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明
  10. innerHTML和innerText怎么区分