yesbe 发表于 2009-9-27 10:17:15

数组脏话查找关键字问题


<p ><strong>kelon</strong> 发表于 2009-9-15 09:37</p>
<h3>数组脏话查找关键字问题</h3>以下是我的脏话的数组
Array ( => 中国|||我国|||大地 => kelon|||lerke|||sb => sex )
我想在数组含有“中国|||我国|||大地”,当有一句话同时出现“中国,我国,大地”时就提示有脏话,**的如“ => sex”就直接提示提示有脏话,这样数组怎样查找啊!大大们,出来帮我看看吧<p ><strong>帅青蛙</strong> 发表于 2009-9-15 10:00</p>
遍历这个数组,根据实际情况进行拆分。
当下标为0或1时,就拆分判断,当为2时直接判断是否存在就行了。<p ><strong>kelon</strong> 发表于 2009-9-15 10:33</p>
function lktest($v,$keyword){
foreach ($v as $k){
if (strpos($k,"|||")!==false){
  $kelon=explode("|||",$k);
  //求数组最大值
  $b=count($kelon);
  foreach($kelon as $t){
      //echo $t.'<br>';
      if (preg_match('/'.$t.'/i',$keyword)){  
          //echo "敏感关键字";
          $a=$a+1;         
  }
     else{     
     $a='';
     }
           
  }
  //如果数组最大值跟$a相等时,则所有|||关键字都出现了
  if ($a==$b){
      echo "敏感关键字";     
      }
}
elseif(preg_match('/'.$k.'/i',$keyword)){
echo "敏感关键字";
  }  
}
}

我这样做好像实现,不知哪位PHP精通一点,如果有更好方法,请指点一下吧!<p ><strong>wuleying</strong> 发表于 2009-9-15 10:56</p>

<?php
function checkCrud($str, $crud)
{
  if(is_array($crud) &amp;&amp; !empty($crud))
  {
  foreach($crud as $value)
  {
    if(strpos($value, '|||') !== false)
    {
      $cruds = explode('|||', $value);
      $num = count($cruds);
      $check = 0;
      foreach($cruds as $val)
      {
      if(strpos($str, $val) !== false)
      {
        $check++;
      }
      }
      if($check == $num)
      {
      return true;
      }
    }
    else
    {
      if(strpos($str, $value) !== false)
      {
      return true;
      }
    }
  }
  return false;
  }
}

$crud = array('中国|||我国|||大地', 'kelon|||lerke|||sb', 'sex');
$test1 = '我是中国人.我国人很多.大地上全是人.-__-!!好脑残的造句.';
$test2 = '我是中xx国人.我xxx国人很多.大地上全是人.-__-!!好脑残的造句.';
$test3 = '我是中国人.我x国人很多.大地上全是人.-__-!!好脑残sex的造句.';
$test4 = '我是中国人.我x国人很多.大地上全是人.-__-!!好脑残seix的造句.';

var_dump(checkCrud($test1, $crud));
var_dump(checkCrud($test2, $crud));
var_dump(checkCrud($test3, $crud));
var_dump(checkCrud($test4, $crud));
?>


[ 本帖最后由 wuleying 于 2009-9-15 11:04 编辑 ]<p ><strong>kelon</strong> 发表于 2009-9-15 11:19</p>
谢谢银子!学习一下先。<p ><strong>laohoo</strong> 发表于 2009-9-16 15:28</p>
效率太低, 请使用preg_match<p ><strong>kelon</strong> 发表于 2009-9-16 16:49</p>
原帖由 laohoo 于 2009-9-16 15:28 发表 http://bbs.blueidea.comhttp://bbs.pqshow.com/images/common/back.gif
效率太低, 请使用preg_match
刚学PHP不久,一看到正则就头晕。大大,写个给我学习一下吧!
  

xiaofengec 发表于 2011-12-23 17:51:33

有要买手机的朋友可以到我小站看看 网址在签名里..

cndqsbw 发表于 5 天前

复杂 没看懂哦,嘿嘿,不好意思啦楼主
页: [1]
查看完整版本: 数组脏话查找关键字问题