敏感詞過濾的php類別庫
<?php class Logic_BlackWord { const APP_FORUM = 1; const APP_BLOG = 2; const APP_VOTE = 3; public function getHitList($txt) { $hitList = array(); $max = $this->getMax(); if($max) { $size = 1000; $last = ceil($max/$size); for($page=1;$page<=$last;$page++) { $result = $this->getHitListByPage($txt,$page,$size); if($result) $hitList = array_merge($hitList,$result); } } $hitList2 = array(); foreach($hitList as $hit=>$type) { $hitList2[$type][] = $hit; } return $hitList2; }
本類庫的敏感詞替換演算法,效率比str_replace高4倍(附6仟個敏感詞),這個類庫是沒有學習過Trie樹的時候寫的,之後我接觸了AC算法,我的演算法和AC是類似的結構和邏輯,都是利用樹,空間換時間,對搜尋/取代海量資料幫助很明顯。
strtr是KMP演算法的代表,在對待海量詞彙上面,並無優勢,每次都要載入詞庫到記憶體。
使用AC演算法寫成擴展,將詞庫載入記憶體中,是最好的處理方式。
所以badword.src.php可供學習AC演算法、學習尋找替換等。
免責聲明
本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn
相關文章
PHP5試用(二)_PHP教程
21Jul2016
PHP5試用(二)。抽象類別 抽象類別不能被實例化。 抽象類別與其它類別一樣,允許定義變數及方法。 抽象類別同樣可以定義一個抽象的方法,抽象類別的方法不會被執
為什麼無法在字段初始化程序中初始化非靜態字段?
03Jan2025
了解欄位初始化問題在您的程式碼中,您有一個儲存庫類別 (DinnerRepository) 和一個服務類別 (Service),它使用...
如何在 NetBeans 中設定 Java 專案的類別路徑?
07Dec2024
在 NetBeans 中設定類別路徑在 NetBeans 中使用 Java 時,您可能需要調整類別路徑以包含其他程式庫或 JAR...
SimpleDateFormat 是執行緒安全的嗎?
06Dec2024
SimpleDateFormat 的線程安全性問題儘管 Java 因其線程安全類別而聞名,但 SimpleDateFormat 類別是一個例外,它...
Hot Tools
熱門文章
崩壞:星穹鐵道 - 所有金色替罪羊謎題解決方案
18Jan2025手游攻略
Tales Of Graces F 重製版:所有鎖定的寶箱密碼
18Jan2025手游攻略
魯馬島:考古學家職業指南
03Jan2025手游攻略
如何修復 KB5049622 在 Windows 11 中安裝失敗的問題?
15Jan2025故障排查
印第安納瓊斯與大圈:Gizeh 藥瓶位置指南
31Dec2024手游攻略