繁体中文转换为简体中文的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下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
Zend Framework分页类用法详解
Mar 22 PHP
CI框架整合smarty步骤详解
May 19 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
PHP抽象类基本用法示例
Dec 28 PHP
Swoole4.4协程抢占式调度器详解
May 23 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+ajax 无刷新删除数据
2010/02/20 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
Python中的元类编程入门指引
2015/04/15 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Python之变量类型和if判断方式
2020/05/05 Python
python实现KNN近邻算法
2020/12/30 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
优秀学生自我鉴定范例
2013/12/18 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
运动会通讯稿100字
2015/07/20 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript