简体中文转换为繁体中文的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 相关文章推荐
第三节 定义一个类 [3]
Oct 09 PHP
其他功能
Oct 09 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
PHP中设置时区,记录日志文件的实现代码
Jan 07 PHP
PHP APC的安装与使用详解
Jun 13 PHP
PHP 转义使用详解
Jul 15 PHP
php数字运算验证码的实现代码
Jul 30 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 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
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP实现简易blog的制作
2016/10/24 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
Python输出9*9乘法表的方法
2015/05/25 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
python简单实例训练(21~30)
2017/11/15 Python
Python for循环生成列表的实例
2018/06/15 Python
python日志logging模块使用方法分析
2019/05/23 Python
python中如何进行连乘计算
2020/05/28 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
单位未婚证明范本
2014/01/18 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
2014年材料员工作总结
2014/11/19 职场文书
初中运动会前导词
2015/07/20 职场文书
小学校长开学致辞
2015/07/29 职场文书
《绝招》教学反思
2016/02/20 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
聊一聊python常用的编程模块
2021/05/14 Python