php數組尋找關鍵函數

來源:互聯網
上載者:User
提供三種方法來判斷一個字串中是否包括我們定義好的詞,這比較適合於在留言,評論等地址進行關鍵詞過濾,執行個體代碼如下:

$crud = array('中國|||我國|||大地', 'kelon|||lerke|||sb', 'sesscxx');

$crud = join('|',$crud);

$crud = str_replace('|||', '|', $crud);

$pat = "/({$crud})/i";

$txt = '我知道中國你是sdfex誰!!';

preg_match/*_all*/($pat, $txt, $matches);

var_dump($matches);

方法二,代碼如下:

function checkcrud($str, $crud)

{

if(is_array($crud) && !emptyempty($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|||ssxb', 'aaa');

$test1 = '我是中國人.我國人很多.大地上全是人.-__-!!好xx的造句.';

var_dump(checkcrud($test1, $crud));

方法三,代碼如下:

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 "敏感關鍵字";//開原始碼phpfensi.com

}

}

}

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.