ucenter中詞語過濾原理詳解

來源:互聯網
上載者:User
本文主要介紹了ucenter中詞語過濾原理,結合執行個體形式分析了ucenter中詞語的相關sql欄位定義與過濾功能的實現方法,涉及php正則替換及字串與數組的相關操作技巧,需要的朋友可以參考下。希望對大家有所協助。

本文分析了ucenter中詞語過濾原理。分享給大家供大家參考,具體如下:

過濾詞語表:

id admin find replacement findpattern
1 UCenterAdminist 訪問 /訪問/is
2 UCenterAdminist 4655 45 /4655/is
3 UCenterAdminist fdsaf dfsa /fdsaf/is
4 UCenterAdminist 有機會 /有機會/is

組建快取資料:

//privatefunction _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;}

調用方法:

$_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() 的每個參數(除了 limit)都可以是一個數組。如果 pattern 和 replacement 都是數組,將以其鍵名在數組中出現的順序來進行處理。這不一定和索引的數字順序相同。如果使用索引來標識哪個 pattern 將被哪個 replacement 來替換,應該在調用 preg_replace() 之前用 ksort() 對數組進行排序。

相關推薦:

PHP產生基於文本的摩斯電碼

php文本替換指定次數

php處理文字文件重複行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.