简体中文转换为繁体中文的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文本数据库的搜索方法
Oct 09 PHP
PHP ajax 分页类代码
Nov 13 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
php select,radio和checkbox默认选择的实现方法
May 15 PHP
php上传文件的增强函数
Jul 21 PHP
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
基于wordpress主题制作的具体实现步骤
May 10 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
twig模板常用语句实例小结
Feb 04 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP7 弃用功能
Mar 09 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开发过程中常用函数收藏
2009/12/14 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
代码生成器 document.write()
2007/04/15 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
Python实现网络端口转发和重定向的方法
2016/09/19 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
python线程join方法原理解析
2020/02/11 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
技术总监岗位职责
2013/12/05 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
走进敬老院活动总结
2014/07/10 职场文书
青年文明号申报材料
2014/12/23 职场文书
史上最牛辞职信
2015/05/13 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
CSS 一行代码实现头像与国旗的融合
2021/10/24 HTML / CSS