PHP繁体转简体性能的改善

大约上个月在PHPChina上接到一次求助:

用PHP将繁体转换为简体,一篇文章会超时。

采用网上流传的版本是针对文章的每个字进行循环查找表,这样带来的问题有:

当文章字数多时,时间开销大;

重复的字也会重复查找;

不在表内的字符也会被查找。

 

一篇千余字的文章甚至会让PHP超时,那么如何改善性能呢?

换个思路就可以了:

循环文章每个字改为循环字符表。这样的好处有:

文章字数再多,也只循环表包含的字符数;

文章字符重复则一次性替换完,性能和只替换一次几乎没有什么差别;

不会循环不需要替换的字符。

 

性能的差异是非常明显的。更换方法后时间开销以ms计,之前是以s计。

代码见附件。繁体转简体.zip

附注:

1、附件里的代码针对gbk作了编码转换,如果是UTF-8则不需要转换;

2、此代码依赖于mbstring扩展。

3、正体字不能这么简简单单直接转成简体字,会有很多地方出错,正式场合使用的内容请校对后再使用。

本文采用Creative Commons协议,复制本文需遵守三点:1、保留署名(链接);2、非商业性使用;3、再次创作的作品必须以相同的许可协议发布。法律顾问:庄毅雄律师

Tags: php

« 上一篇 | 下一篇 »

袁丽娟

一直用你那个批量查询工具,能不能查询完成后显示总数是多少,收录了多少,未收录多少,收录率是多少,要不每次考核工作后都非常麻烦

Post on 2012, February 16, 2:34 PM 1

笑林

能留个联系方式吗 或是加我QQ  1599886565  找你有需要

Post on 2012, February 17, 1:11 PM 2


Comment (require):