繁体中文转换为简体中文的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 新手入门教程
Aug 03 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
Nov 26 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
详解YII关联查询
Jan 10 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
laravel框架创建授权策略实例分析
Nov 22 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
PHP实现计算器小功能
2020/08/28 PHP
Javascript继承机制的设计思想分享
2011/08/28 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
Python中字典的基础知识归纳小结
2015/08/19 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python mysql断开重连的实现方法
2019/07/26 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python 实现兔子生兔子示例
2019/11/21 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
师范应届生求职信
2013/11/15 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
新手上路标语
2014/06/20 职场文书
安全生产标语大全
2014/10/06 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
创业计划书之甜品店
2019/09/18 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL