敏感詞過濾是我朝程式設計師必須具備的一種特殊技能,隨著敏感詞越來越多,是時候寫個擴充套件來快速的進行敏感詞檢測了
使用說明
1. 安裝 libdatrie
tar zxf libdatrie-0.2.4.tar.gz
cd libdatrie-0.2.4
./configure --prefix=/usr/local
make
make install
2. 安裝 trie_filter 擴充套件
tar zxf trie_filter-1.0.0.tar.gz
cd trie_filter-1.0.0
phpize
./configure --with-php-config=/path/to/php-config
make
make install
記得修改你的 php.ini 檔案,啟用 trie_filter 擴充套件。extension=trie_filter.so
3. 生成詞典預處理工具(***.c 在 trie_filter-1.0.0 裡面)
gcc -o *** ***.c -ldatrie
4. 生成敏感詞詞典
./*** txt_file_path dict_file_path
5. 使用擴充套件
擴充套件介面很簡單,只有兩個函式:
1) trie_filter_load($path_to_dict)
用來載入詞典,成功返回乙個 trie_filter 資源控制代碼,失敗返回 null
2) trie_filter_search($trie, $text)
用來檢測一段文字中是否含有詞典中定義的敏感詞,$trie 是上乙個函式返回的 trie filter 控制代碼,$text 是欲檢測的文字
如果檢測到敏感詞則返回乙個陣列,陣列第乙個元素指出檢測到的敏感詞在 $text 中的偏移量,第二個元素指出該敏感詞的長度(bytes)
如果沒有檢測到敏感詞,則返回乙個空陣列
擴充套件的速度怎麼樣
乙個字,很快!擴充套件的檢測演算法基於 double array trie tree,查詢單一關鍵字的時間複雜度為 o(1),查詢整段文字的時間複雜度為 o(n),n 為文字的長度,而且檢測的速度不會因為敏感詞的增加而降低。
注意事項
1. 擴充套件把詞典和要檢測的文字都當做平凡的位元組流處理,因此可以無視字符集的問題。但需要注意的是詞典的編碼需要和檢測文字的編碼一致,例如詞典為 utf-8 編碼而你需要檢測的文字為 gbk 編碼,這就要求你在呼叫 trie_filter_search() 函式之前通過 iconv 或者 mb_*** 函式轉換一下編碼
2. 目前只在 linux + php-5.2 環境下測試通過,不支援 windows,也沒有支援的計畫
php敏感詞過濾
1 簡單敏感詞過濾 badword array 張三 張三丰 張三丰田 badword1 array combine badword,array fill 0,count badword bb 我今天開著張三丰田上班 str strtr bb,badword1 echo str 2 使用php元件 ...
mysql 敏感詞 PHP實現的敏感詞過濾方法示例
1 敏感詞過濾方法 todo 敏感詞過濾,返回結果 param array list 定義敏感詞一維陣列 param string string 要過濾的內容 return string log 處理結果 function sensitive list,string if count 0 else ...
PHP實現敏感詞過濾
為了構建良好的網路環境以及為了大家健康的上網。編不下去了 反正你知道敏感詞過濾一定是要有的,如果沒有這東西有關部門不找你喝茶哦!壞笑 壞笑 廢話不多說指尖上乾貨 fake file get contents words.txt 讀取關鍵字文字資訊 這個文字就是敏感詞的文字網上都有 最好選擇最新最全的...