简体中文转换为繁体中文的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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
一个php作的文本留言本的例子(六)
Oct 09 PHP
第七节--类的静态成员
Nov 16 PHP
使用 MySQL 开始 PHP 会话
Dec 21 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
PHP 搜索查询功能实现
Nov 29 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
PHP通过GD库实现验证码功能示例
Feb 23 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
晶体管来复再生式二管收音机
2021/03/02 无线电
PHP中用hash实现的数组
2011/07/17 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
react的hooks的用法详解
2020/10/12 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
小学教师暑期培训方案
2014/08/28 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers