繁体中文转换为简体中文的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 相关文章推荐
yii框架中的Url生产问题小结
Jan 16 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php数组去重复数据示例
Feb 25 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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 学习资料零碎东西
2010/12/04 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
vue.js中created方法作用
2018/03/30 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
layui复选框的全选与取消实现方法
2019/09/02 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
python单线程文件传输的实例(C/S)
2019/02/13 Python
python openCV自制绘画板
2020/10/27 Python
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
诚信贷款承诺书
2014/05/30 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
工程部经理岗位职责
2015/02/02 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
埃及王子观后感
2015/06/16 职场文书
薪资证明范本
2015/06/19 职场文书
被委托人身份证明
2015/08/07 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
高二数学教学反思
2016/02/18 职场文书
检讨书怎么写?
2019/06/21 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
Mysql排序的特性详情
2021/11/01 MySQL
Python绘制散乱的点构成的图的方法
2022/04/21 Python