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

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

Jun 13, 2016 pm 12:23 PM
array comment gt match replace

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'、'(' => '(', ')' => ') 〔' => '['、'】' => ']'、'【' => '[',']' => ']'、'〖' => '[', '〗' => ']'、'”' => '['、'”' => ']',''' => '['、''' => ']'、'{' => '{'、'}' => '}'、'《' => '<','》' => '>','%' => '%'、'+' => ' '、'—' => '-'、'-' => '-'、'~' => '-',':' => ':'、'。' => '.'、'、' => ',', ',' => '.'、'、' => '.'、';' => ',', '?' => 「?」、「!」 => '!'、'…' => '-'、'‖' => '|'、'”' => '"', ''' => '`', '''' => '`', '|' => '|', '〃' => '"',' ' => ' ');

$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;
}

これで、コンテンツが広告かどうかを判断でき、最も一般的な広告をフィルタリングできます

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'))));        $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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

mysqlコメントの概念とは何ですか mysqlコメントの概念とは何ですか Jun 02, 2023 pm 05:34 PM

コメントとは注釈や注釈のことです。 MySQL データベースでは、フィールドまたは列のコメントは comment 属性を使用して追加されます。新しいテーブルを作成するスクリプトでは、フィールド定義スクリプトに comment 属性を追加することでコメントを追加できます。既存のテーブルのすべてのフィールドのコメントを表示したい場合は、「showfullcolumnsfromテーブル名」コマンドを使用できます。 mysql では COMMENT は発言やコメントを意味します。 MySQL はコメントを追加します (コメント) MySQL データベースでは、comment 属性を使用してフィールドまたはカラムにコメントを追加します。新しいテーブルを作成するスクリプトでは、フィールド定義スクリプトに comment 属性を追加することでコメントを追加できます。サンプルコードは次のとおりです。

C# の Array.Sort 関数を使用して配列を並べ替える C# の Array.Sort 関数を使用して配列を並べ替える Nov 18, 2023 am 10:37 AM

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

REPLACE 関数を使用して MySQL の文字列の指定された部分を置換する方法 REPLACE 関数を使用して MySQL の文字列の指定された部分を置換する方法 Jul 25, 2023 pm 01:18 PM

MySQL は、データを処理および操作するためのさまざまな機能を提供する、一般的に使用されるリレーショナル データベース管理システムです。このうち、REPLACE関数は文字列の指定した部分を置き換える関数です。この記事では、MySQL で文字列を置換するための REPLACE 関数の使用方法を紹介し、コード例を通してその使用法を示します。まず、REPLACE 関数の構文を見てみましょう: REPLACE(str,search_str,replace_str)。

Python での文字列検索と置換のテクニックは何ですか? Python での文字列検索と置換のテクニックは何ですか? Oct 20, 2023 am 11:42 AM

Python での文字列検索と置換のテクニックは何ですか? (具体的なコード例) Python では文字列が一般的なデータ型であり、日常のプログラミングでは文字列の検索や置換操作によく遭遇します。この記事では、一般的な文字列の検索と置換のテクニックを、具体的なコード例とともに紹介します。文字列内の特定の部分文字列を検索するには、文字列の find() メソッドまたは Index() メソッドを使用できます。 find() メソッドは、文字列内で最初に出現した部分文字列のインデックスを返します。

PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法 PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法 Jun 27, 2023 pm 01:48 PM

PHP でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法 PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法 Jun 26, 2023 pm 01:41 PM

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

See all articles