当前位置:首页 > PHP教程 > php函数 > 列表

php数组查找关键函数

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-19 17:05:20 浏览: 评论:0 

提供三种方法来判断一个字符串中是否包括我们定义好的词,这比较适合于在留言,评论等地址进行关键词过滤,实例代码如下:

  1. $crud = array('中国|||我国|||大地''kelon|||lerke|||sb''sesscxx'); 
  2. $crud = join('|',$crud); 
  3. $crud = str_replace('|||''|'$crud); 
  4. $pat  = "/({$crud})/i"
  5. $txt = '我知道中国你是sdfex谁!!'
  6. preg_match/*_all*/($pat$txt$matches); 
  7. var_dump($matches); 

方法二,代码如下:

  1. function checkcrud($str$crud
  2.     if(is_array($crud) && !emptyempty($crud)) 
  3.     { 
  4.         foreach($crud as $value
  5.         { 
  6.             if(strpos($value'|||') !== false) 
  7.             { 
  8.                 $cruds = explode('|||'$value); 
  9.                 $num = count($cruds); 
  10.                 $check = 0; 
  11.                 foreach($cruds as $val
  12.                 { 
  13.                     if(strpos($str$val) !== false) 
  14.                     { 
  15.                         $check++; 
  16.                     } 
  17.                 } 
  18.                 if($check == $num
  19.                 { 
  20.                     return true; 
  21.                 } 
  22.             } 
  23.             else 
  24.             { 
  25.                 if(strpos($str$value) !== false) 
  26.                 { 
  27.                     return true; 
  28.                 } 
  29.             } 
  30.         } 
  31.         return false; 
  32.     } 
  33. $crud = array('中国|||我国|||大地''kelon|||lerke|||ssxb''aaa'); 
  34. $test1 = '我是中国人.我国人很多.大地上全是人.-__-!!好xx的造句.'
  35.  
  36. var_dump(checkcrud($test1$crud)); 

方法三,代码如下:

  1. function lktest($v,$keyword){ 
  2. foreach ($v as $k){ 
  3. if (strpos($k,"|||")!==false){ 
  4.     $kelon=explode("|||",$k); 
  5.     //求数组最大值 
  6.     $b=count($kelon); 
  7.     foreach($kelon as $t){ 
  8.         //echo $t.'<br>'; 
  9.         if (preg_match('/'.$t.'/i',$keyword)){  
  10.             //echo "敏感关键字"; 
  11.             $a=$a+1;            
  12.         } 
  13.     else{     
  14.     $a=''
  15.     } 
  16.              
  17.     } 
  18.     //如果数组最大值跟$a相等时,则所有|||关键字都出现了 
  19.     if ($a==$b){ 
  20.         echo "敏感关键字";     
  21.         } 
  22.    } 
  23. elseif(preg_match('/'.$k.'/i',$keyword)){ 
  24. echo "敏感关键字";//开源代码phpfensi.com 
  25.     }  
  26. }

Tags: php数组查找 php数组函数

分享到: