php 敏感词过滤 php-ext-trie-filter

 
本文介绍了 :php敏感词过滤扩展php-ext-trie-filter的安装使用
 
环境:CentOS 6.6 + php5.6.13
 
php-ext-trie-filter扩展地址:https://github.com/wulijun/php-ext-trie-filter
 
安装php-ext-trie-filter扩展前需要安装他的依赖库libdatrie。
 
依赖库下载地址:http://linux.thai.net/~thep/datrie/datrie.html#Download
 
安装:
 
1、安装libdatrie
 
cd /usr/local/src/
wget ftp://linux.thai.net/pub/ThaiLinux/software/libthai/libdatrie-0.2.4.tar.gz
tar zxvf libdatrie-0.2.4.tar.gz
cd libdatrie-0.2.4
make clean
./configure --prefix=/usr/local/libdatrie
make
make install

2、安装php-ext-trie-filter
 
cd /usr/local/src/
wget https://github.com/wulijun/php-ext-trie-filter/archive/master.zip
unzip master.zip
cd php-ext-trie-filter-master/
phpize
./configure --with-php-config=/usr/bin/php-config --with-trie_filter=/usr/local/libdatrie
make
make install

3、修改php.ini,添加 trie_filter 扩展:extension=trie_filter.so,保存配置并重启web服务器。
 
4、使用 trie-filter 扩展创建一个敏感词库文件
 
public function indexAction()
{
//敏感词数组
$words = array('管理员','admin','51ask');
//创建一个空的trie tree
$resTrie = trie_filter_new();
//向trie tree中添加敏感词
foreach ($words as $k => $v) {
trie_filter_store($resTrie, $v);
}
//生成敏感词文件
trie_filter_save($resTrie,'./dirty_words.dic');
}

可以得到一个 dirty_words.dic敏感字字典 文件。
 
5、使用trie-filter扩展进行敏感词过滤
 
// 加载脏字词典
$resTrie = trie_filter_load('./dirty_words.dic');
//准备要过滤的文本
$content = '$content';
//在文本中查找一个脏字,
//该函数的返回值是一个数组,第一个值为脏字出现的位置,第二个值为脏字的长度,拿到返回值后,可以用substr等函数获取脏字
$res1 = trie_filter_search($resTrie, $content);
print_r($res1);
//在文本中查找所有的脏字
$res2 = trie_filter_search_all($resTrie, $content);
print_r($res2);
//在脚本结束的时候,trie tree会自动销毁,不过我们可以通过trie_filter_free在执行过程中销毁一个trie tree
//返回值为bool值
trie_filter_free($resTrie);

 
 
 
 

0 个评论

要回复文章请先登录注册