TOUVE 发表于 2015-8-30 12:24:11

PHP版本繁简体,UTF-8和Unicode互转的函数:GB2312Big5,GB2312UTF-8,Big5UTF-8等

研究VtigerCRM时,试图把繁体语言插件转成简体版,并去除对iconv的依赖,因为很多php空间不支持;研究过GB2312,Big5,UTF-8之间的转化方法。后来就扔到了一边,最近有多个朋友询问解决方案,于是重新找出来贡献给大家;
本人对php所知不多,即使偶尔修改些php的网页也是摸索着查资料来实现,望php行家莫见笑。
这个方案的特点就是使用简单,只要在需要调用转换函数的页面加入include_once'language.inc',就可以方便使用函数了。
关于使用方法就附上我当初转语言插件的代码:

<?php
    function dirtree($path=".")
    {
      include_once 'language.inc';
      $d = dir($path);
      while(false !== ($v = $d->read()))
      {
            if($v == "." || $v == "..")
                continue;
            $file = $d->path."/".$v;
            if(is_dir($file))
            {
                //echo "$v";
                dirtree($file);
            }
            else
                echo $file."\n";
                //rename($file,str_replace('zh_tw','zh_cn',$file));
                //$filename='zh_cn.lang.php';               
                $fd=fopen($file,'r');               
                $contents = fread($fd, filesize($file));               
                $contents=u2b($contents);
                $contents=b2g($contents);
                //echo $contents;
                $contents=str_replace('日','日历',$contents);
                $contents=g2u($contents);
                $contents=str_replace('Trade chinese language pack created by METO, Inc. http://www.meto.com.tw','Simple chinese language pack created by Steed Soft Technology, Inc. http://www.steedsoft.com',$contents);

                fclose($fd);
                $fd=fopen(str_replace('zh_tw/','zh_cn/',str_replace('zh_tw','zh_cn',$file)),'w');
                fwrite($fd,$contents);
                fclose($fd);
                //rename($file,str_replace('zh_tw','zh_cn',$file));               
      }
         $d->close();
         //echo " ";
   }
   dirtree("zh_tw");
?>   
  下载地址
也可以登陆该网页下载:http://www.layman.5gigs.com/download/(还要些别的好东西等着你)

P.S
该方案的缺点,因为繁体中文和简体中文存在一定的词法不一致的情况,因此会发现有些词无法转换,我从网上找到了两个处理该问题的dat文件,但具体实现我没有做,以后也许会抽时间研究下并做个更新。
页: [1]
查看完整版本: PHP版本繁简体,UTF-8和Unicode互转的函数:GB2312Big5,GB2312UTF-8,Big5UTF-8等