繁体中文转换为简体中文的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与MySQL交互使用详解
Oct 09 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
php实现的操作excel类详解
Jan 15 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
PHP容器类的两种实现方式示例
Jul 24 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 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
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
window.open的功能全解析
2006/10/10 Javascript
window.showModalDialog使用手册
2007/01/11 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
Python yield 使用浅析
2015/05/28 Python
Python读写zip压缩文件的方法
2018/08/29 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
函授教育个人学习的自我评价
2013/12/31 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
日语系毕业求职信
2014/07/27 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
优秀教师个人总结
2015/02/11 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server