| 
 
     
TA的每日心情  | 擦汗 2018-6-6 11:33 | 
|---|
 
  签到天数: 348 天 [LV.8]以坛为家I 
 | 
本文介绍了PHP屏蔽关键字实现方法,一共有两种实现方式,具体如下: 
 
第一种方法 
思路 用正则去匹配关键字,把关键字用别的字符替换- $str = "/你大爷|你麻痹|什么玩意|SB|你他妈/";  // 关键字正则字符串  
 
 - $string = "你他妈干什么玩意了 SB";    // 文本字符串 
 
 - echo preg_replace($str, "*", $string);    //preg_replace() 执行一个正则表达式的匹配和替换
 
  复制代码 OK 方法一结束  挺简单把  大家在看的时候可以根据思路自己先去想 
 
方法二 
思路 
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 要么就是关键字的位置 判断的时候注意 
成功后大家可以想想怎么把匹配到的关键字全部返回组成一个字符串或者数组 
 
 |   
 
  
 |