繁体中文转换为简体中文的PHP函数


Posted in PHP onOctober 09, 2006

前几天我在oso论坛上问有没有这个源程序,没人回复。终于下定决心移植一个这样的函数,感谢网友Keyes提供移植用的Delphi源代码。其调用方式为$txt=big5togb($txt)。
    (注:源代码中的include "data_big5.php";这个文件在就是一个数组,在http://caocao.oso.com.cn/data_big5.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 isbig5($code)
{
  if (strlen($code)>=2)
  {
    $code=strtok($code,"");

    if (ord($code[0]) < 161)
    {
      return (0);
    }
    else
    {
      if (((ord($code[1]) >= 64)&&(ord($code[1]) <= 126))||((ord($code[1]) >= 161)&&(ord($code[1]) <= 254)))
      {
        return (1);
      }
      else
      {
        return (0);
      }
    }
  }
  else
  {
    return (0);
  }
}

function big5offset($code)
{
  if (strlen($code) >= 2)
  {
    $code=strtok($code,"");
    if ((ord($code[1]) >= 64)&&(ord($code[1]) <= 126))
    {
      return ((ord($code[0]) - 161) * 157 + (ord($code[1]) - 64));
    }
    if ((ord($code[1]) >= 161)&&(ord($code[1]) <= 254))
    {
      return ((ord($code[0]) - 161) * 157 + 63 + (ord($code[1]) - 161));
    }
  }
  return (-1);
}

function wordtostring($code)
{
  return (chr(hexdec(substr($code,0,2))).chr(hexdec(substr($code,2,2))));
}

function big5togb($code)
{
  include "data_big5.php";
  $output="";
  $length=strlen($code);
  $code=strtok($code,"");
  $idx=0;
  while ($idx < $length)
  {
    $tmpStr=$code[$idx].$code[$idx+1];

    if (isbig5($tmpStr))
    {
      $offset=big5offset($tmpStr);
      if (($offset >= 0)||($offset <= 14757))
      {
        $output.=wordtostring($big5order[$offset]);
        $idx++;
      }
      else
      {
        $output.= $code[$idx];
      }
    }
    else
    {
      $output.= $code[$idx];
    }
    $idx++;
  }
  return ($output);
}
?>  

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    

PHP 相关文章推荐
基于PHP编程注意事项的小结
Apr 27 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
如何在HTML 中嵌入 PHP 代码
May 13 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
PHP 99乘法表的几种实现代码
Oct 13 PHP
简体中文转换为繁体中文的PHP函数
Oct 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
You might like
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python六大开源框架对比
2015/10/19 Python
Python编码类型转换方法详解
2016/07/01 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
物业管理专业个人的自我评价
2013/11/19 职场文书
工作的心得体会
2013/12/31 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
双拥工作宣传标语
2014/06/26 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
论文评审意见
2015/06/05 职场文书
小学生读书笔记范文
2015/06/30 职场文书
你会写请假条吗?
2019/06/26 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python