PHP7.0敏感词扩展库安装

1.安装libiconv,这个是libdatrie的依赖项

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure make make install

 

2. 安装:libdatrie ( http://linux.thai.net/~thep/datrie/datrie.html#Download ) 

这个需要手动下载,然后上传,没找到wget的地址

tar zxf libdatrie-0.2.4.tar.gz cd libdatrie-0.2.4 ./configure --prefix=/usr/local make make install

 

编译出现错误 trietool.c:125: undefined reference to `libiconv'

解决办法为: ./configure LDFLAGS=-L/usr/local/lib LIBS=-liconv

 

还有可能是服务器没有安装gcc

centos 上面直接yum instal gcc -c++

 

3. 安装 trie_filter 扩展

由于官方trie_filter扩展对中文支持的不是很好,所以在git上找到了一个在官方扩展上面改写的扩展经过测试没有问题

安装方法如下:

https://github.com/wulijun/php-ext-trie-filter   在这里下载源码包

phpize ./configure --with-php-config=/usr/local/bin/php-config make make install

 

这里编译的时候,没有出错,但是到了make这一部就出错了

由于PHP7.0的扩展库兼容问题,这里会报语法错误

解决办法:

打开trie_filter.c

把原来的代码

 

1、 static void php_trie_filter_dtor(ZEND_RESOURCE *rsrc TSRMLS_DC)

{

Trie *trie = (Trie *)rsrc->ptr;

trie_free(trie);

}

改成

static void php_trie_filter_dtor(zend_resource *rsrc TSRMLS_DC)

{

Trie *trie = (Trie *)rsrc->ptr;

trie_free(trie);

}

 

2、找到trie_filter_search

把原来的

ZEND_FETCH_RESOURCE(trie, Trie *, &trie_resource, -1, PHP_TRIE_FILTER_RES_NAME, le_trie_filter);

改成

zend_fetch_resource(Z_RES_P(trie_resource), PHP_TRIE_FILTER_RES_NAME, le_trie_filter);

这里是因为在php7.0以后的版本把ZEND_FETCH_RESOURCE方法去掉了,改成了小写之后,里面的参数变掉了

在 PHP 7 中删除了原有的 ZEND_FETCH_RESOURCE 宏,直接使用函数 zend_fetch_resource ,而且解析方式也变得简单了很多,想比 PHP 5 要高效很多,后面我们再通过图片分析对比。

参数

含义

res

资源指针

resource_type_name

该类资源的字符串别名

resource_type

该类资源的类型 id

 

3、把源代码中的所有的ZEND_FETCH_RESOURCE都改成zend_fetch_resource

 

到这里再make & make install就没问题了

敏感词库安装完成之后就可以测试了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值