繁体中文转换为简体中文的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分页时出现的Fatal error的解决方法
Apr 18 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 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
2006/12/13 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
javascript 数组排序函数
2009/08/20 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
详解python分布式进程
2018/10/08 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Python中turtle库的使用实例
2019/09/09 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
庆祝教师节活动方案
2014/01/31 职场文书
学校安全生产承诺书
2014/05/23 职场文书
英语分层教学实施方案
2014/06/15 职场文书
八项规定对照检查材料
2014/08/31 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
欧元符号 €
2022/02/17 杂记
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers