Wenn Ihre Website Kommentare enthält, werden Sie auf jeden Fall feststellen, dass Ihre Website häufig mit Anzeigen von einer Person versehen ist. Beispielsweise gibt es Teilzeitjobs, QQ-Konten, Taobao-Teilzeitjobs und Website-Informationen Schauen wir uns an, wie man diese Inhalte filtert.
Die Arten von Anzeigen für Kommentare oder andere von Benutzern gepostete Inhalte umfassen im Allgemeinen Folgendes:
1: Taobao-Teilzeitjob, QQ 123456789-Gruppe hinzufügen (mit QQ-Nummer oder WeChat-Nummer). oder eine andere numerische Zahl)
2: Taobao-Teilzeitjob, QQ-Nummer hinzufügen (mit englischen Schlüsselwörtern)
3: Taobao-Teilzeitjob, QQ hinzufügen ① ① ① ① ① ① (spezielle Nummer)
4: 22222222 (Typnummer in voller Breite)
Filtermethode:
Verwenden Sie reguläre Regeln, um Satzzeichen, Zahlen und Buchstaben in der Zeichenfolge abzugleichen und zu ersetzen, um zu bestimmen, ob aufeinanderfolgende Zahlen oder Schlüsselwörter vorhanden sind ( unterstützt die volle Breite und abgerundete Ecken), da Werbung normalerweise QQ-Nummern und andere Kontaktinformationen enthält. Daher müssen wir zuerst die Kommentare „reinigen“ und ersetzen, die Kommentare voller Breite in Kommentare halber Breite umwandeln, etwas „Sand“ wie Satzzeichen, Leerzeichen, Buchstaben usw. entfernen und nur chinesische Zeichen und Zahlen übrig lassen.
Beispiel:
$comment= „Dieser $% ist eine (1)8 Artefakt drei oder vier Website, kommen Sie und treten Sie bei ④④he@#heqq 1 2 3 4 5 6 7 8″;
1: Inhalt „bereinigen“, Satzzeichen entfernen
$flag_arr=array('?','!','¥','(',')', ':' ,''',''','"','"','《','》',',','…',' ',',','nbsp','】 ',' [','~'); ($flag_arr,'',$comment),ENT_QUOTES,'UTF-8'))));
Nach der Verarbeitung wird $comment zu: „Dies ist ein (1) 8 Artefakt, drei oder vier Website B kommen und beitreten.“ ①④hehe qqq12345678″
2: Möglicherweise sind einige Symbole oder Zahlen voller Breite eingemischt. Verwenden Sie daher den folgenden Code, um die Symbole voller Breite in Symbole halber Breite umzuwandeln, die mit regulären Ausdrücken abgeglichen werden können
$quanjiao = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', ' 4' => '4','5' => 9' => '9', 'A' => ' => 'E', 'F' => ' => 'J', 'K' => ' => 'O', 'P' => ' => 'T','U' => 'U', 'V' => ' => 'Y','Z' => 'Z', 'a' => ' => 'd','e' => 'e', 'f' => i' => 'i', 'k' => n' => 'n','o' => 'o' => 'スs' => 's', 't' => , 'x' => ; 'x', 'ス' => , '〔' => ; '[', '〕' => , '〗' => ; ']', '"' => '[', '"' => , '{' => ; '{', '}' =>', '《' => %', '+' => ' ', '-' => ', '. ' => '.', ',' => '.', ';' ' => '?', '! ' => '!', '…' => '|', '"' => '"', '' ' => '`', '|' => '|', '〃' => ' ');
$comment=strtr($comment , $quanjiao);
phps strtr-Funktion wird zum Konvertieren bestimmter Zeichen in einer Zeichenfolge verwendetSie können
strtr(string,from,to)
oder
strtr(string, array) verwenden )
Nach der Verarbeitung wird $comment zu: „Dies ist eine 18-Artefakt-34-Website B, kommen Sie und treten Sie bei ①④hehe qq12345678“;
3: Der Kommentar kann auch Sonderzeichen enthalten (Sie können ihn neu erweitern Sonderzeichen selbst in das Array unten einfügen)
$special_num_char=array('①'=>'1','②'=>'2','③'=>'3','④'=>'4','⑤ '=>'5','⑥'=>'6','⑦'=>'7','⑧'=>'8','⑨'=>'9','⑩ '=>'10','⑴'=>'1','⑵'=>'2','⑶'=>'3','⑷'=>'4','⑸ '=>'5','⑹'=>'6','⑺'=>'7','⑻'=>'8','⑼'=>'9','⑽ '=>'10','eins'=>'1','zwei'=>'2','drei'=>'3','vier'=>'4','fünf '=>'5','Sechs'=>'6','Sieben'=>'7','Acht'=>'8','Neun'=>'9','Null '=>'0');
$comment=strtr($comment, $special_num_char);
Nach der Verarbeitung wird $comment zu: „Dies ist eine 18-Artefakt-Website B, kommen Sie und treten Sie 14 bei, haha qq12345678“;
Wenn im Kommentar traditionelle chinesische Zahlen erscheinen, wie zum Beispiel „Null“, „Eins“, „Zwei“, „Drei“, „Vier“, „Fünf“, „Lu“, „旒“, „捌“, 'Neun', 'Shi', diese können auf die gleiche Weise wie $special_num_char oben hinzugefügt und erweitert werden.
4: In den Kommentaren können auch eine Mischung aus normalen Zahlen und Zahlen mit chinesischen Schriftzeichen vorkommen. Verwenden Sie einfach die Methode in Punkt 3, um sie in normale Zahlen umzuwandeln.
Beispiel: Dies ist eine Werbung qq 1twotwo45six7899
Nach der Konvertierung:
Dies ist eine Werbung qq 1224567899
5: Regelmäßige Verarbeitung zum Filtern von Werbung
Verwenden Sie regelmäßig Matching preg_match_all('/d /',$comment,$match)
Analysieren Sie das erhaltene match[0]-Matching-Array
foreach($match[0] as $val)/ /Ob es ein gibt digitales QQ-Konto und WeChat-ID
{
if(strlen($val)>=6)
{//Es gibt eine fortlaufende Zahlenfolge, die länger als 6 Ziffern ist, was höchst werbeverdächtig ist
$is_ad=true;
break;
}
}
if(count($match[0])>=10)
{//Es gibt viele diskontinuierliche Zahlen besteht der Verdacht auf Werbung
$is_ad=true;
}
ok, Sie können also feststellen, ob es sich bei dem Inhalt um Werbung handelt, und die häufigsten Anzeigen filtern
$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; }
Das Obige stellt die PHP-Filterung von Werbeinhalten für Teilzeitjobs, QQ-Konten, Taobao-Teilzeitjobs und Websites vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.