繁体中文转换为简体中文的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 相关文章推荐
实用函数5
Nov 08 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
PDO::prepare讲解
Jan 29 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
php链式操作的实现方式分析
Aug 12 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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面向对象分析设计的61条军规小结
2010/07/17 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
js中的面向对象入门
2017/03/06 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
Python中endswith()函数的基本使用
2015/04/07 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
django admin组件使用方法详解
2019/07/19 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
python如何导入依赖包
2020/07/13 Python
Python如何实现线程间通信
2020/07/30 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
应用数学自荐书范文
2013/11/24 职场文书
迟到检讨书800字
2014/01/13 职场文书
联谊活动策划书
2014/01/26 职场文书
书香家庭事迹材料
2014/05/09 职场文书
党员三严三实心得体会
2014/10/13 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
Python 如何解决稀疏矩阵运算
2021/05/26 Python
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL