找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3088|回复: 3

简体中文转换为繁体中文的PHP函数

[复制链接]
发表于 2005-5-21 16:26:21 | 显示全部楼层 |阅读模式
感谢网友Keyes提供移植用的Delphi源代码。其调用方式为$txt=gbtobig5($txt)。
(注:源代码中的include "data_gb.php";这个文件在就是一个数组,在http://caocao.oso.com.cn/data_gb.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 isgb($code)
{
if (strlen($code)>=2)
{
$code=strtok($code,"");
if ((ord($code[0]) < 161)||(ord($code[0]) >= 247))
{
return (0);
}
else
{
if ((ord($code[1]) <= 161)||(ord($code[1]) >= 254))
{
return (0);
}
else
{
return (1);
}
}
}
else
{
return (1);
}
}

function gboffset($code)
{
if (strlen($code) >= 2)
{
$code=strtok($code,"");
return ((ord($code[0]) - 161) * 94 + (ord($code[1]) - 161));
}
else
{
return(-1);
}
}

function wordtostring($code)
{
return (chr(hexdec(substr($code,0,2))).chr(hexdec(substr($code,2,2))));
}

function gbtobig5($code)
{
include "data_gb.php";
$output="";
$length=strlen($code);
$code=strtok($code,"");
$idx=0;
while ($idx < $length)
{
$tmpStr=$code[$idx].$code[$idx+1];

if (isgb($tmpStr))
{
$offset=gboffset($tmpStr);
if (($offset >= 0)||($offset <= 8177))
{
$output.=wordtostring($gborder[$offset]);
$idx++;
}
else
{
$output.= $code[$idx];
}
}
else
{
$output.= $code[$idx];
}
$idx++;
}
return ($output);
};
?>
回复

使用道具 举报

 楼主| 发表于 2005-5-21 16:29:12 | 显示全部楼层
希望客家人社区有繁体版
回复 点赞 拍砖

使用道具 举报

发表于 2005-5-22 08:55:24 | 显示全部楼层
哇.....是什么???
回复 点赞 拍砖

使用道具 举报

发表于 2005-5-22 10:56:55 | 显示全部楼层
Posted by 冰子静雅 at 2005-5-22 08:55
哇.....是什么???

编的一个小程序,用于转换字体的函数
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

存档|手机版|返回页顶|客家风情——客家人·客家网 HakkaOnline.com

GMT+8, 2024-12-22 13:14

Powered by Discuz! X3.5

Copyright © 2024 https://www.hakkaonline.com

手机扫码访问
快速回复 返回顶部 返回列表