ホームページ  >  記事  >  バックエンド開発  >  PHP フィルタリング広告コンテンツ (アルバイト、QQ アカウント、タオバオのアルバイト、ウェブサイト)

PHP フィルタリング広告コンテンツ (アルバイト、QQ アカウント、タオバオのアルバイト、ウェブサイト)

WBOY
WBOYオリジナル
2016-06-13 12:23:29858ブラウズ

PHP は広告コンテンツ (アルバイト、QQ アカウント、タオバオのアルバイト、URL) をフィルタリングします

あなたの Web サイトにコメントがある場合、あなたの Web サイトに頻繁にコメントが挿入されていることがわかります。アルバイト、QQ No.、タオバオのアルバイト、Web サイト情報などのコンテンツをフィルタリングする方法を見てみましょう。
?


ユーザーが投稿するコメントやその他のコンテンツ広告の種類には、一般に次の種類があります:

1: タオバオ アルバイト プラス QQ 123456789 グループ(QQ 番号または WeChat 番号またはその他の数字を含む)
2: タオバオでのアルバイトの場合は、QQ 番号を追加します (英語のキーワード付き)
3: タオバオでのアルバイトの場合は、QQ を追加します ① ① ① ① ① ① (特殊な数字を含む数字)
4: 22222222 (全角タイプの数字)

フィルタリング方法:
通常のルールを使用して句読点、数字、文字を一致させ、置換します広告には通常、QQ 番号などの連絡先情報が含まれるため、連続する数字またはキー文字 (全角および角丸がサポートされています) があるかどうかを判断する文字列の値を調べます。したがって、まずコメントを「純化」して置き換え、全角コメントを半角コメントに変換し、句読点、スペース、文字などの「砂」を削除して、漢字と数字だけを残す必要があります。

例:

$comment= "この $% は (1)8 アーティファクト 3 または 4 の Web サイトです。ぜひ参加してください。④④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 artifact 34 website. B 来て参加してください①④ 笑 qqq12345678"

2: 全角記号や数字が混在している可能性がありますので、以下のコードを使用して全角記号を置き換えてください。正規表現でマッチング可能な半角

?$quanjiao = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', ' 4' => '4'、'5' => '6'、'7' => '8'、' 9' => '9'、'A' => 'B'、'C' => 'D' E' => 'E'、'F' => 'G'、'H' => 'I' J'=>J、'K'=>L、'M'=>N、 O'=>O'、'P'=>'Q'、'R'=>'S'、' T'=>T'、'U'=>'V'、'W'=>'X'、' Y' => 'Y'、'Z' => 'a'、'b' => 'c'、' d' => 'd'、'e' => 'f' => 'g'、'h' => 'i' => 'i'、'j' => 'k'、'l' => 'm'、' n' => 'n'、'o' => 'p'、'q' => 'r'、' 's'、't'、'u'、'v'、'w'、' x' => 'x'、'y' => 'z'、'(' => '(', ')' => ') 〔' => '['、'】' => ']'、'【' => '[',']' => ']'、'〖' => '[', '〗' => ']'、'”' => '['、'”' => ']',''' => '['、''' => ']'、'{' => '{'、'}' => '}'、'《' => '0c9f95ce460a73fb787216529edc31e1 '>','%' => '%'、'+' => ' '、'—' => '-'、'-' => '-'、'~' => '-',':' => ':'、'。' => '.'、'、' => ',', ',' => '.'、'、' => '.'、';' => ',', '?' => 「?」、「!」 => '!'、'…' => '-'、'‖' => '|'、'”' => '"', ''' => '`', '''' => '`', '|' => '|', '〃' => '"',' ' => ' ');

$comment=strtr($comment, $quanjiao);
php の strtr 関数は、変換文字列内の特定の文字です。

strtr( string,from,to)
または者
strtr(string,array)

処理後,$comment变成了:”这是一个18神器三四的网站B快来添加①④呵呵qq12345678″;

3:评论里面可能还包含特殊文字(可以自己下面数组进行扩展新的特殊字符)

$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);
処理後,$comment变成了:”これは18禁のネットサイトB快来追加14呵呵qq12345678”;
如果评论里面出在繁体の数字,例: '零','壹','贰','叁','肆','伍','陆','柒','捌','玖','拾'

4: 通常の数字と文字の数字が混在している可能性もあります。

例:これは一条广告qq 1二贰45六7899
转换後:
これは一条广告qq 1224567899

5:正则处理过滤广告

利用正则一致?preg_match_all('/d /',$comment,$match)
分析获取的match[0] 一致数组

foreach($match[0] as $val)//デジタル QQ アカウントと WeChat アカウントがあるかどうか
{
??? 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;        }

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。