php数组查找关键函数
提供三种方法来判断一个字符串中是否包括我们定义好的词,这比较适合于在留言,评论等地址进行关键词过滤,实例代码如下:
$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 ) && ! empty 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|||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测试数据 } } }查看更多关于php数组查找关键函数 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30992