繁体中文转换为简体中文的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新手上路(七)
Oct 09 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
Jul 15 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
PHP 导出Excel示例分享
Aug 18 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
php语言的7种基本的排序方法
Dec 28 PHP
基于PHP微信红包的算法探讨
Jul 21 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
Apr 06 PHP
YII2 全局异常处理深入讲解
Mar 24 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
3.从实例开始
2006/10/09 PHP
解析php中curl_multi的应用
2013/07/17 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
python中字典增加和删除使用方法
2020/09/30 Python
医药营销专业个人自荐信
2013/09/29 职场文书
高中生自我评语大全
2014/01/19 职场文书
入学申请自荐信范文
2014/02/26 职场文书
园艺师求职信
2014/03/10 职场文书
初中班主任寄语
2014/04/04 职场文书
妈妈活动方案
2014/08/15 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js