>  기사  >  백엔드 개발  >  PHP 필터 광고 콘텐츠 아르바이트, QQ 계정, 타오바오 아르바이트, 웹사이트

PHP 필터 광고 콘텐츠 아르바이트, QQ 계정, 타오바오 아르바이트, 웹사이트

WBOY
WBOY원래의
2016-08-08 09:19:161528검색

귀하의 웹사이트에 댓글이 달린 경우, 귀하의 웹사이트에는 한 사람의 광고가 삽입되는 경우가 많습니다. 예를 들어 아르바이트, QQ 계정, 타오바오 아르바이트, 웹사이트 정보가 있습니다. . 이러한 내용을 필터링하는 방법을 살펴보겠습니다.


사용자가 게시한 댓글이나 기타 콘텐츠에 대한 광고 유형은 일반적으로 다음과 같습니다.

1: 타오바오 아르바이트 추가 QQ 123456789 그룹(QQ 번호 또는 위챗 번호 포함) 또는 기타 숫자)
2: 타오바오 알바, QQ 번호 추가(영어 키워드 포함)
3: 타오바오 알바, QQ 추가 ① ① ① ① ① ①(특수번호)
4: 22222222(전자형 숫자)

필터링 방법:
일반 규칙을 사용하여 문자열의 구두점, 숫자, 문자를 일치시키고 교체하여 연속된 숫자 또는 키워드가 있는지 확인합니다( 전폭 및 둥근 모서리 지원)), 광고에는 일반적으로 QQ 번호와 같은 연락처 정보가 포함되기 때문입니다. 따라서 먼저 주석을 "정화"하고 교체하고, 전각을 반각으로 변환하고, 구두점, 공백, 문자 등과 같은 일부 "모래"를 제거하고 한자와 숫자만 남겨야 합니다.

예:

$comment= "이 $%는 (1)8 아티팩트 3~4개의 웹사이트입니다. 와서 ④he@#heqq 1 2 3 4 5 6 7 8″에 가입하세요.”;

1: 콘텐츠 “정화”, 구두점 제거

$flag_arr=array('?','!','\','(',')', ':' ,''',''','"','"',' 《','》',',','…',',',',','nbsp','】 ',' [','~');                

$comment=preg_replace('/s/','',preg_replace("/[[:punct:]]/",'',strip_tags( html_entity_decode(str_replace) ($flag_arr,'',$comment),ENT_QUOTES,'UTF-8'))));
처리 후 $comment는 다음과 같이 됩니다. "이것은 (1) 8 아티팩트 3~4개의 웹사이트 B가 와서 참여합니다. ① IVhehe qqq12345678″

2: 일부 전각 기호나 숫자가 섞여 있을 수 있으므로 다음 코드를 사용하여 전각 기호를 정규식과 일치할 수 있는 반각 기호로 변환합니다

$quanjiao = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', ' 4' => ; '4','5' => '6', '7' => 9' => '9', 'A' => 'A', 'B' => 'C', 'D' => 'D' ' => ; 'E','F' => 'G', 'H' => ' => 'J', 'K' => 'L', 'M' => ' => 'O','P' => 'Q', 'R' => ' => ; 'T', 'U' => 'V', 'W' => ' => 'Y','Z' => 'a', 'b' => ' => 'd','e' => 'e', ​​'f' => 'g', 'h' => i' => ; 'i','j' => 'k', 'l' => 'm', ' n' => ; 'n','o' => 'p', 'q' => 'q', 'スs' => 's', 't' => 'u', 'v' => 'x' => 'x', 'ス' => 'z','(' => '(', ')' => '〖' => '[', '}' => '〗' => ']', '"' => ']',''' => '{' => '{', '}' => '}', ''' =>','》' =>','%' => ', '+' => '+', '-' => '-',':' => ','. ' => '.', ',' => '.', ',' => ' => '?', '! ' => '!', '…' => '-', '"' => '"', '' ' => '`', '|' => '|', '〃' => '');

$comment=strtr($comment , $quanjiao);
php의 strtr 함수는 문자열의 특정 문자를 변환하는 데 사용됩니다.

strtr(string,from,to)
또는
strtr(string, array)를 사용할 수 있습니다. )

처리 후 $comment는 다음과 같이 됩니다. "이것은 18 아티팩트 34 웹사이트입니다. B 와서 ①넷에 가입하세요. 헤헤 qq12345678";

3: 댓글에는 특수 문자도 포함될 수 있습니다(새로 확장할 수 있음) 아래 배열에 특수 문자를 직접 입력하세요)

$special_num_char=array('①'=>'1','②'=>'2','③'=>'3',' ④'=>'4','⑤ '=>'5','⑥'=>'6','7'=>'7','8'=>'8','⑨'=>'9','⑩ '=>'10','⑴'=>'1','⑵'=>'2','⑶'=>'3','⑷'=>'4','⑸ '=>'5','⑹'=>'6','⑺'=>'7','⑻'=>'8','⑼'=>'9','⑽ '=>'10','하나'=>'1','둘'=>'2','셋'=>'3','넷'=>'4','다섯 '=>'5','여섯'=>'6','일곱'=>'7','여덟'=>'8','나인'=>'9','제로 '=>'0');
$comment=strtr($comment, $special_num_char);
처리 후 $comment는 다음과 같이 됩니다. "이것은 18 아티팩트 웹사이트 B입니다. 와서 14에 가입하세요. 하하 qq12345678″;
댓글에 '0', '1', '2', '3', '4', '5', '루', '旒', '捌' 등 한자 번체 숫자가 나타나는 경우, 'Nine','Shi'는 위의 $special_num_char와 같은 방법으로 추가하고 확장할 수 있습니다.

4: 댓글에 일반 숫자와 한자 숫자가 혼합되어 있을 수도 있습니다. 3번 방법을 사용하여 일반 숫자로 변환하세요.

예: 광고 qq 1twotwo45six7899
전환 후:
광고 qq 1224567899입니다

5: 광고 필터링을 위한 정규 처리

정규 사용 일치하는 preg_match_all('/d+/',$comment,$match)
얻은 match[0] 일치 배열 분석

foreach($match[0] as $val)/ /있는지 여부 디지털 QQ 계정 및 위챗 계정
{
if(strlen($val)>=6)
{//6자리 이상의 연속된 숫자열이 있어 광고 의심이 심함
$is_ad=true;
break;
}
}
if(count($match[0])>=10)
{//불연속적인 숫자가 많고, 광고 의심
$is_ad=true;
}

그래서 콘텐츠가 광고인지 판단하고 가장 일반적인 광고를 필터링할 수 있습니다

 $flag_arr=array('?','!','¥','(',')',':','‘','’','“','”','《','》',',','…','。','、','nbsp','】','【','~');
        $comment=preg_replace('/\s/','',preg_replace("/[[:punct:]]/",'',strip_tags(html_entity_decode(str_replace($flag_arr,'',$comment),ENT_QUOTES,'UTF-8'))));

        $quanjiao = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4','5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E','F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O','P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T','U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y','Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd','e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i','j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n','o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z','(' => '(', ')' => ')', '〔' => '[', '〕' => ']', '【' => '[','】' => ']', '〖' => '[', '〗' => ']', '“' => '[', '”' => ']','‘' => '[', '\'' => ']', '{' => '{', '}' => '}', '《' => '<','》' => '>','%' => '%', '+' => '+', '—' => '-', '-' => '-', '~' => '-',':' => ':', '。' => '.', '、' => ',', ',' => '.', '、' => '.', ';' => ',', '?' => '?', '!' => '!', '…' => '-', '‖' => '|', '”' => '"', '\'' => '`', '‘' => '`', '|' => '|', '〃' => '"',' ' => ' ');
        $comment=strtr($comment, $quanjiao);
        $special_num_char=array('①'=>'1','②'=>'2','③'=>'3','④'=>'4','⑤'=>'5','⑥'=>'6','⑦'=>'7','⑧'=>'8','⑨'=>'9','⑩'=>'10','⑴'=>'1','⑵'=>'2','⑶'=>'3','⑷'=>'4','⑸'=>'5','⑹'=>'6','⑺'=>'7','⑻'=>'8','⑼'=>'9','⑽'=>'10','一'=>'1','二'=>'2','三'=>'3','四'=>'4','五'=>'5','六'=>'6','七'=>'7','八'=>'8','九'=>'9','零'=>'0');
        $comment=strtr($comment, $special_num_char);
        preg_match_all('/\d+/',$comment,$match);
        $is_ad = false;
        foreach($match[0] as $val)//是否存在数字的qq号和微信号
        {
            if(strlen($val)>=6)
            {//存在连续的长度超过6位的数字串,广告嫌疑很大
                $is_ad=true;
                break;
            }
        }
        if(count($match[0])>=10)
        {//间断的数字很多,存在广告的嫌疑
            $is_ad=true;
        }

위 내용은 PHP 필터링 광고 알바, QQ 계정, 타오바오 알바, 웹사이트 등의 내용을 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.