简体中文转换为繁体中文的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 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
php 日期时间处理函数小结
Dec 18 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
php安装swoole扩展的方法
Mar 19 PHP
PHP Reflection API详解
May 12 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
10个值得深思的PHP面试题
Nov 14 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 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 session 预定义数组
2009/03/16 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
python中list列表的高级函数
2016/05/17 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Django中的ajax请求
2018/10/19 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
大学生毕业自我评价范文分享
2013/11/11 职场文书
小学运动会表扬稿
2014/01/19 职场文书
促销活动总结怎么写
2014/06/25 职场文书
领导班子整改措施
2014/10/24 职场文书
个人工作保证书
2015/02/28 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
德劲DE1102数字调谐收音机机评
2022/04/07 无线电