敏感词库 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仟個敏感詞),這個類庫是沒有學(xué)習過Trie樹的時候?qū)懙?#xff0c;之后我接觸了AC算法,我的算法和AC是類似的結(jié)構(gòu)和邏輯,都是利用樹,空間換時間,對搜索/替換海量數(shù)據(jù)幫助很明顯。
strtr是KMP算法的代表,在對待海量詞匯上面,并無優(yōu)勢,并且每次都要加載詞庫到內(nèi)存。
使用AC算法寫成擴展,將詞庫加載內(nèi)存中,是最好的處理方式。
所以badword.src.php可供學(xué)習AC算法、學(xué)習查找替換等。
總結(jié)
以上是生活随笔為你收集整理的敏感词库 php,敏感词过滤的php类库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二号坦克?
- 下一篇: 联想升级失败无法开机怎么办啊 联想电脑升