繁体中文转换为简体中文的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下把数组保存为文件格式的实例应用
Feb 08 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
php的memcached客户端memcached
Jun 14 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
php数组冒泡排序算法实例
May 06 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 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生成随机字符串(3种方法)
2015/09/25 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
javascript 多级checkbox选择效果
2009/08/20 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
Python 序列的方法总结
2016/10/18 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python set集合使用方法解析
2019/11/05 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
机械制造与自动化应届生求职信
2013/11/16 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
教师自我反思材料
2014/02/14 职场文书
食堂标语大全
2014/06/11 职场文书
孔庙导游词
2015/02/04 职场文书