ホームページ  >  記事  >  バックエンド開発  >  ucenter の単語フィルタリング原理の詳細な説明

ucenter の単語フィルタリング原理の詳細な説明

*文
*文オリジナル
2017-12-29 18:15:401547ブラウズ

この記事では、主に ucenter の単語フィルタリングの原理を紹介し、関連する SQL フィールド定義と ucenter の単語のフィルタリング関数を例の形で分析します。これには、文字列と配列の PHP の定期的な置換と関連する操作スキルが含まれます。ダウンを参照できます。お役に立てれば幸いです。

この記事では、ucenter の単語フィルタリング原理を分析します。参考までに皆さんと共有してください。詳細は次のとおりです:

フィルター単語リスト:

id admin find replacement findpattern
1 UCenter管理者 訪問 素晴らしい /訪問/is
2 UCenterAdminist 4655 45 /4655/is
3 UCenterAdminist fdsaf dfsa /fdsaf/is
4 UCenterAdminist opportunity ( /opportunity/is

) キャッシュデータの構築:

//private
function _get_badwords() {
  $data = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."badwords");
  $return = array();
  if(is_array($data)) {
    foreach($data as $k => $v) {
      $return['findpattern'][$k] = $v['findpattern'];
      $return['replace'][$k] = $v['replacement'];
    }
  }
  return $return;
}

Callメソッド:各パラメータの

$_CACHE['badwords'] = $this->base->cache('badwords');
if($_CACHE['badwords']['findpattern']) {
  $subject = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $subject);
  $message = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $message);
}

preg_replace() (例外を除く)制限 ) は配列にすることができます。 pattern と replace の両方が配列の場合、それらのキーは配列内に出現する順序で処理されます。これは、インデックスの番号順と必ずしも同じではありません。どのパターンをどの置換で置き換えるかを識別するためにインデックスを使用する場合、preg_replace() を呼び出す前に配列を ksort() でソートする必要があります。

関連する推奨事項:

PHP はテキストベースのモールス信号を生成します

php は指定された回数テキストを置換します

php は繰り返し行を含むテキストドキュメントを処理します

以上がucenter の単語フィルタリング原理の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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