opencc opencc4php 简繁体扩展安装
公司的APP做了澳门、香港、珠海三个城市,用户在不同城市,APP接口返回的数据需要做动态转换,用了线上的一些翻译接口,但请求太过频繁,而且有些转换繁体不区分香港繁体和台湾繁体会导致有些字出现错别字,索性就用opencc吧,opencc的话还需要装opencc4php。opencc4php 是 OpenCC 的PHP扩展,能很智能的完成简繁体转换。装的过程中如果遇到问题,百度和Google基本都可以解决问题
公司的APP做了澳门、香港、珠海三个城市,用户在不同城市,APP接口返回的数据需要做动态转换,用了线上的一些接口和其他扩展进行转换,但由于请求太过频繁,而且有些转换繁体不区分香港繁体和台湾繁体会导致有些错别字出现。索性就用opencc吧,opencc的话还需要装opencc4php。opencc4php 是 OpenCC 的PHP扩展,能很智能的完成简繁体转换。装的过程中如果遇到问题,百度和Google基本都可以解决问题。以下是安装过程
一些基本的组件先安装一个,git如果已安装可以忽略
# yum install doxygen cmake git
好了 开始安装opencc
# cd /usr/local
# git git clone https://github.com/BYVoid/OpenCC.git
# cd OpenCC/
# make
# sudo make install
//中间有什么错的 自行解决 基本上都是一些依赖的组件,安装或者更新一下即可
然后开始 安装opencc4php
# cd /usr/local
# git clone https://github.com/NauxLiu/opencc4php.git
# cd opencc4php
# phpize //具体的文件地址自行查找
# ./configure --with-opencc=/usr/local/OpenCC --with-php-config=/www/server/php/72/bin/php-config //自行修改 opencc目录和 php-config目录
# make test //测试有什么问题没有
# make
# make install
make test 出错误的时候 看这里返回结果显示
Installing shared extensions: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/
修改php.ini 在php.ini 最下面添加这段代码 然后重启web 查看phpinfo CTRL+F 查找 opencc 如果有的话 就显示成功安装了。
[openCC]
extension_dir =/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718
extension=opencc.so
重启php
# /etc/init.d/php-fpm restart
如果出现下面报错(没有该报错请忽略)
NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library 'opencc.so' (tried: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/opencc.so (libopencc.so.1.1: cannot open shared object file: No such file or directory), /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/opencc.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/opencc.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
或者 libopencc.so版本是 libopencc.so.2的,可能是无法建立libopencc文件软连接,下面软连接命令替换为(ln -s /usr/lib/libopencc.so.2 /usr/lib64/libopencc.so.2)
[root@idc local]# which opencc
/usr/bin/opencc
[root@idc local]# ldd /usr/bin/opencc
linux-vdso.so.1 => (0x00007ffe3e12c000)
libopencc.so.1.1 => not found
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f545d2ae000)
libm.so.6 => /lib64/libm.so.6 (0x00007f545cfac000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f545cd96000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f545cb79000)
libc.so.6 => /lib64/libc.so.6 (0x00007f545c7ac000)
/lib64/ld-linux-x86-64.so.2 (0x00007f545d5c3000)
[root@idc local]# ln -s /usr/lib/libopencc.so.1.1 /usr/lib64/libopencc.so.1.1
[root@idc local]# ldd /usr/bin/opencc
linux-vdso.so.1 => (0x00007ffca91ce000)
libopencc.so.1.1 => /lib64/libopencc.so.1.1 (0x00007f42c9808000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f42c9501000)
libm.so.6 => /lib64/libm.so.6 (0x00007f42c91fe000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f42c8fe8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f42c8dcc000)
libc.so.6 => /lib64/libc.so.6 (0x00007f42c89fe000)
/lib64/ld-linux-x86-64.so.2 (0x00007f42c9a8c000)
[root@idc local]# opencc --version
Open Chinese Convert (OpenCC) Command Line Tool
Version: 1.1.1
[root@idc local]# echo '美國國家海洋和大氣管理局' | opencc -c t2s
美国国家海洋和大气管理局
重启php
[root@idc local]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
这里既安装成功!
到此结束 下面是opencc4php的介绍
demo.php代码
$od = opencc_open("s2t.json"); //传入配置文件名
$text = opencc_convert("美国国家海洋和大气管理局", $od);
echo $text;//美國國家海洋和大氣管理局
opencc_close($od);
函数列表
opencc_open(string ConfigName) ConfigName:配置文件名,成功返回资源对象,失败返回false
opencc_close(resource ob) 关闭资源对象,成功返回true,失败返回false. 成功后od会置为NULL
opencc_error() 返回最后一条错误信息,有错误信息返回String,无错误返回false
opencc_convert(string str, resource od) str:要转换的字符串(UTF-8),od:opencc资源对象
可用配置
s2t.json 简体到繁体
t2s.json 繁体到简体
s2tw.json 简体到台湾正体
tw2s.json 台湾正体到简体
s2hk.json 简体到香港繁体(香港小学学习字词表标准)
hk2s.json 香港繁体(香港小学学习字词表标准)到简体
s2twp.json 简体到繁体(台湾正体标准)并转换为台湾常用词汇
tw2sp.json 繁体(台湾正体标准)到简体并转换为中国大陆常用词汇
您的一次评论就是对本站点的小小支持.
文章评论(1)
还有简繁扩展啊,以前都是用的线上转换来对简体繁体进行操作,请求量多了就无法请求,特别不方便,现在试试这个。