php敏感词过滤扩展php-ext-trie-filter的安装使用

分类: PHP,服务器  • 发布时间: 2015-12-30 22:03:15  • 浏览量:21789

基本环境: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,目前最新版本是0.2.9,但是我下载不下来,只找到0.2.4的能下载,我把该文件传到文章里:

libdatrie-0.2.4.tar.gz

下面说详细步骤:

1.安装libdatrie

cd /usr/local/src/
wget http://unun.in/ueditor/php/upload/file/20151230/1451485607118662.gz
tar zxvf 1451485607118662.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,然后增加一行:extension=trie_filter.so,保存配置并重启php

4.使用trie-filter扩展创建一个敏感词库文件

public function indexAction()
    {
        //敏感词数组
        $words = array('管理员','admin','你妈');
        //创建一个空的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 = '打撒杀死大家阿斯看管理得到顶管理员顶顶顶的dfdfkjdfkjkjdfjrtrtiayuewfjdjsjdfssakcvgadminretyyu速度思考坑';
        //在文本中查找一个脏字,
        //该函数的返回值是一个数组,第一个值为脏字出现的位置,第二个值为脏字的长度,拿到返回值后,可以用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);


这里对php-ext-trie-filter扩展做个备份。

php-ext-trie-filter-master.zip


文章标签: php, linux, centos, 扩展, trie, filter
用户评论:
  • 游客74522 2017-10-18 20:51:07

    我按这个东西都安装好了,phpinfo 里也有了,怎么生成词库的时候,没生成文件。求教怎么解决谢谢

    • 游客16449 2018-05-22 08:56:47

      我怀疑你的路径没搞对,其实生成了,你没找到,或者你的目录没有写的权限。

  • 游客48373 2018-05-23 14:34:04

    请问php7支持吗?