简体中文转换为繁体中文的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编写PDF文档生成器
Oct 09 PHP
获得Google PR值的PHP代码
Jan 28 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
ini_set的用法介绍
Jan 07 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
php验证手机号码
Nov 11 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 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
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
keras K.function获取某层的输出操作
2020/06/29 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
党员年终民主评议的自我评价
2013/11/05 职场文书
《童年》教学反思
2014/02/18 职场文书
上课说话检讨书500字
2014/11/01 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
小学英语复习计划
2015/01/19 职场文书
给老婆的检讨书
2015/01/27 职场文书
朋友聚会开场白
2015/06/01 职场文书
安全生产培训心得体会
2016/01/18 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL