简体中文转换为繁体中文的PHP函数


Posted in PHP onOctober 09, 2006

感谢网友Keyes提供移植用的Delphi源代码。其调用方式为$txt=gbtobig5($txt)。
    (注:源代码中的include "data_gb.php";这个文件在就是一个数组,在http://caocao.oso.com.cn/data_gb.zip,请编辑下载到oso上,做一个链接,因为这个文件我过几天就要删除了。)

<?
/***********************************************************************
                       Written by caocao
                       caocao@eastday.com
                       http://caocao.oso.com.cn

                       With the help of Keyes
                       Keyes2000@263.net
                       http://my-wjl.scu.edu.cn/~Keyes
***********************************************************************/
function isgb($code)
{
  if (strlen($code)>=2)
  {
    $code=strtok($code,"");
    if ((ord($code[0]) < 161)||(ord($code[0]) >= 247))
    {
      return (0);
    }
    else
    {
      if ((ord($code[1]) <= 161)||(ord($code[1]) >= 254))
      {
        return (0);
      }
      else
      {
        return (1);
      }
    }
  }
  else
  {
    return (1);
  }
}

function gboffset($code)
{
  if (strlen($code) >= 2)
  {
    $code=strtok($code,"");
    return ((ord($code[0]) - 161) * 94 + (ord($code[1]) - 161));
  }
  else
  {
    return(-1);
  }
}

function wordtostring($code)
{
  return (chr(hexdec(substr($code,0,2))).chr(hexdec(substr($code,2,2))));
}

function gbtobig5($code)
{
  include "data_gb.php";
  $output="";
  $length=strlen($code);
  $code=strtok($code,"");
  $idx=0;
  while ($idx < $length)
  {
    $tmpStr=$code[$idx].$code[$idx+1];

    if (isgb($tmpStr))
    {
      $offset=gboffset($tmpStr);
      if (($offset >= 0)||($offset <= 8177))
      {
        $output.=wordtostring($gborder[$offset]);
        $idx++;
      }
      else
      {
        $output.= $code[$idx];
      }
    }
    else
    {
      $output.= $code[$idx];
    }
    $idx++;
  }
  return ($output);
};
?>  

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    

PHP 相关文章推荐
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
php上传大文件设置方法
Apr 14 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
模仿OSO的论坛(四)
Oct 09 #PHP
二十行语句实现从Excel到mysql的转化
Oct 09 #PHP
一个颜色轮换的简单例子
Oct 09 #PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 #PHP
定制404错误页面,并发信给管理员的程序
Oct 09 #PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 #PHP
使用字符串函数输出整数化的PHP版本号
Oct 09 #PHP
You might like
ajax 的post方法实例(带循环)
2011/07/04 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
《广玉兰》教学反思
2014/04/14 职场文书
2014年度党员自我评议
2014/09/13 职场文书
员工2014年度工作总结
2014/12/09 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL