繁体中文转换为简体中文的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 删除数组元素
Jan 16 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
php删除数组元素示例分享
Feb 17 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
laravel自定义分页效果
Jul 23 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
PHP操作XML中XPath的应用示例
Jul 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获取post中的json数据的实现方法
2011/06/08 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
php函数连续调用实例分析
2015/07/30 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
React优化子组件render的使用
2019/05/12 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
Python备份Mysql脚本
2008/08/11 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
详解Python发送email的三种方式
2018/10/18 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
基于python3实现倒叙字符串
2020/02/18 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
内刊编辑求职自荐书范文
2014/02/19 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
工程承包协议书范本
2014/09/29 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
趣味运动会标语口号
2015/12/26 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技