?繁体转换的class


Posted in PHP onOctober 09, 2006

?是以class包?好的?繁???Q的class,
另外需要???table?n:
1. http://www.jerry.com.tw/php/big5.map
2. http://www.jerry.com.tw/php/gb.map
程式如下: CCharset.php3

<? //=====================================================
// 程式?T: Magic Jerry
//
// function Big5_Gb($str) => big5?GB for string
// function Gb_Big5($str) => GB?Big5 for string
//=====================================================
class CCharset {

var $gb_map="gb.map"; //如果要放到?e的路??要加上完整路?
var $big5_map="big5.map"; //例如 ="/home/table/gb.map

var $dep_char = 127;

//-----------------------------------------------------------------
function cbig5_gb($str,$fd) {

$c=ord(substr($str,0,1));
$x=ord(substr($str,1,1));
$address=(($c-160)*510)+($x-1)*2;
fseek($fd, $address);
$hi=fgetc($fd);
$lo=fgetc($fd);
return "$hi$lo";
}

function cgb_big5($str,$fd) {
$c=ord(substr($str,0,1));
$x=ord(substr($str,1,1));
$address=(($c-160)*510)+($x-1)*2;
fseek($fd, $address);
$hi=fgetc($fd);
$lo=fgetc($fd);
return "$hi$lo";
}

//-----------------------------------------------------------------
function Big5_Gb($str) {
$fd = fopen ($this->gb_map, "r");
$str=str_replace("charset=big5","charset=gb2312", $str);
$outstr="";
for($i=0;$i<strlen($str);$i++) {
$ch=ord(substr($str,$i,1));
if($ch > $this->dep_char) {
$outstr.=$this->cbig5_gb(substr($str,$i,2),$fd);
$i++;

} else {
$outstr.=substr($str,$i,1);
}
}
fclose ($fd);
return $outstr;
}
//-----------------------------------------------------------------
function Gb_Big5($str) {
$fd = fopen ($this->big5_map, "r");
$str=str_replace("charset=gb2312","charset=big5", $str);
$outstr="";
for($i=0;$i<strlen($str);$i++) {
$ch=ord(substr($str,$i,1));
if($ch > $this->dep_char) {
$outstr.=$this->cgb_big5(substr($str,$i,2),$fd);
$i++;

} else {
$outstr.=substr($str,$i,1);
}
}
fclose ($fd);
return $outstr;

}

}
?>

===================================================================
使用?例:
<?
// Designer: Magic Jerry

//====直接??Q文字串 的使用方法========
include("CCharset.php3");
$obj=new CCharset;
$big5="?是一??big5的文字串";
$tgb=$obj->Big5_Gb($big5);
echo $tgb; //===> $tgb?檗D?Q好的gb?字串
$tbig5=$obj->Gb_Big5($tgb);
echo $tbig5; // 又被?回?砹? big5
//======================================
?>

<?
//如果直接??Q?? 或是?n案
// ?法 http://your.domain.com.tw/???程式.php3?http://要??的??url或?n案
// example: ??Q奇摩首?
// http://your.domain.com.tw/???程式.php3?http://www.kimo.com.tw/index.shtml
// 注意: 以下??法如遇到???有使用cookie,例如??user,可能??惶呋?login??..
// ?槭颤N? 想想看吧... @_@
include("CCharset.php3");
$file=$QUERY_STRING;
$fcontents = join( '', file( "$file" ) );
$fcontents=str_replace("<head>","<head><base href=$file>", $fcontents);
$code=new CCharset;
$gb=$code->Big5_Gb($fcontents);
echo $gb;
?>

?例:

<?

if($func=="charset") {
setcookie("CHAR_GB",$GB,time()+ 31536000);
$t=time();
$url="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING;
$url=str_replace("?func=charset&GB=1","", $url);
$url=str_replace("?func=charset&GB=0","", $url);
$url=str_replace("&func=charset&GB=1","", $url);
$url=str_replace("&func=charset&GB=0","", $url);
//echo $url;
//echo "SET to Charset = $CHAR_GB";
$t=time();
echo "
<script language=javascript>
document.location='$url'
</script>
";

exit;
}
//phpinfo();
if($CHAR_GB==1 && !$istran ) {
include("CCharset.php3");
if(strlen($QUERY_STRING)) $url="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING."&istran=1";
else $url="http://".$HTTP_HOST.$PHP_SELF."?istran=1";

while (list ($key, $val) = each ($HTTP_COOKIE_VARS)) {
//echo "$key => $val<br>";
$url.="&".$key."=".urlencode($val);
}

$fcontents = join( '', file( "$url" ) );
$code=new CCharset;
$fcontents=$code->Big5_Gb($fcontents);
//echo "??Q?的 $CHAR_GB";
echo $fcontents;
exit;

}
//} else setcookie("CHAR_GB",0,time()+ 31536000);
echo "
<meta http-equiv='Content-Type' content='text/html; charset=big5'>  
<style type="text/css">
//<!--
.menufont {FONT-FAMILY: 新?明?; FONT-SIZE: 9pt; LETTER-SPACING: 1pt; TEXT-DECORATION: none ; color: balck}
.frame_font {FONT-FAMILY: 新?明?; FONT-SIZE: 9pt; LETTER-SPACING: 1pt; TEXT-DECORATION: none ; color: yellow}
.tablefont {FONT-FAMILY: 新?明?; FONT-SIZE: 9pt; LETTER-SPACING: 1pt; TEXT-DECORATION: none ; color: .bodycolor {FONT-FAMILY: 新?明?; FONT-SIZE: 9pt; LETTER-SPACING: 1pt; TEXT-DECORATION: none ; color: .num {FONT-FAMILY: Arial; font-weight:bold ; font-style: normal; FONT-SIZE: 8pt; LETTER-SPACING: 1pt; TEXT-DECORATION: none ; color:a { color: green ; TEXT-DECORATION: none }
a:hover { color: red ; }
//-->
</style>
";

echo
"<SCRIPT language=JavaScript>
<!--
if (document.images) {

img4on = new Image();
img4on.src="page_img/logo_2.gif";
img4off = new Image();
img4off.src="page_img/logo.gif";
}
function imgOn(imgName) {
if (document.images) {
document[imgName].src = eval(imgName + "on.src"); }}

function imgOff(imgName) {
if (document.images) {
document[imgName].src = eval(imgName + "off.src"); }}
//-->
</SCRIPT>";

echo "<body leftMargin=0 rightMargin=0 topMargin=0 marginwidth='0' marginheight='0'>";
include("hows.php3");
echo "<TABLE border=0 width=100% cellPadding=0 cellSpacing=0 >";
echo "<TR>";
echo "<TD bgcolor='
echo "<a href=http://www.jerry.com.tw/ >";
echo "<img src='page_img/left_logo.gif' border=0 alt='Welcome to www.jerry.com.tw'>";
echo "</a>";

echo "</TD>";
echo "<TD bgcolor='echo "<TABLE border=0 width=100% cellPadding=0 cellSpacing=0 class='frame_font'>";
echo "<tr>";
echo "<td width=200>";
echo "<TABLE border=0 width=100% cellPadding=0 cellSpacing=0 >";
echo "<tr><td>";
echo "<a href=index.php3 ";
echo "onmouseout="imgOff('img4')" ";
echo "onmouseover="imgOn('img4')" ";
echo ">";
echo "<IMG name=img4 SRC=page_img/logo.gif valign=top border=0>";
echo "</a>";
echo "</td></tr>";
echo "<tr><td align='center'>";
include("hows_2.php3");
echo "</td></tr>";
echo "</table>";
echo "</td>";
echo "<td valign=bottom>";
echo "<TABLE border=0 width=90% cellPadding=0 cellSpacing=0 class='frame_font'>";
$tb=" width=20% height=18 align=left ";
$fnt="&sz=18&cr=231&cg=255&cb=123&br=102&bg=153&bb=153&sh=1";
echo "<tr>";
echo "<td width=20% $tb>";
echo "<a href=nbbs.php3?proc=area&aid=3>";
echo "<img border=0 src=font.php3?str=PHP/Zend$fnt>";
echo "</a>";
echo "</td>";
echo "<td $tb>";
echo "<a href=nbbs.php3?proc=area&aid=9 >";
echo "<img border=0 src=font.php3?str=MySQL$fnt>";
echo "</a>";
echo "</td>";
echo "<td $tb>";
echo "<a href=nbbs.php3?proc=area&aid=4 >";
echo "<img border=0 src=font.php3?str=Linux$fnt>";
echo "</a>";
echo "</td>";
echo "<td $tb>";
echo "<a href=nbbs.php3?proc=area&aid=10 >";
echo "<img border=0 src=font.php3?str=?例程式$fnt>";
echo "</a>";
echo "</td>";
echo "<td $tb>";
if(strlen($QUERY_STRING)) $aurl="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING;
else $aurl="http://".$HTTP_HOST.$PHP_SELF;
$aurl=str_replace("?CHAR_GB=1","", $aurl);
$aurl=str_replace("?CHAR_GB=0","", $aurl);
$aurl=str_replace("&CHAR_GB=1","", $aurl);
$aurl=str_replace("&CHAR_GB=0","", $aurl);
if(isset($CHAR_GB) && $CHAR_GB==1) {
if(strlen($QUERY_STRING))
echo "<a href=$aurl&func=charset&GB=0>";
else echo "<a href=$aurl?func=charset&GB=0>";
echo "<img border=0 src=big5.gif>";
echo "</a>";
} else {
if(strlen($QUERY_STRING))
echo "<a href=$aurl&func=charset&GB=1>";
else echo "<a href=$aurl?func=charset&GB=1>";
echo "<img border=0 src=gb.gif>";
echo "</a>";
}
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td $tb>";
echo "<a href=php_url.php3 >";
echo "<img border=0 src=font.php3?str=相?站台$fnt>";
echo "</a>";;
echo "</td >";
echo "<td $tb>";
echo "<a href=php_news.php3 >";
echo "<img border=0 src=font.php3?str=相????fnt>";
echo "</a>";
echo "</td>";
echo "<td $tb>";
echo "<a href=singin.php3 >";
echo "<img border=0 src=font.php3?str=?名留念$fnt>";
echo "</a>";
echo "</td>";

echo "<td $tb>";
echo "<a href=index.php3 >";
echo "<img border=0 src=font.php3?str=回首?$fnt>";
echo "</a>";
echo "</td>";
echo "<td $tb>";
echo "注意:切?Q??勿??按";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</td>";

echo "</tr>";
echo "</table>";
echo "</TD>";

echo "</TR>";
echo "<TR >";
echo "<TD valign=top height='25'>";
echo "<IMG SRC=page_img/curve1.gif >";
echo "</TD>";
echo "</TR>";
echo "<TR>";
echo "<TD>";

?> 

PHP 相关文章推荐
PHP 中文乱码解决办法总结分析
Jul 30 PHP
php面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
php写的AES加密解密类分享
Jun 20 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
教你php如何实现验证码
Jan 20 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
一个用于网络的工具函数库
Oct 09 #PHP
oracle资料库函式库
Oct 09 #PHP
针对初学PHP者的疑难问答(2)
Oct 09 #PHP
模仿OSO的论坛(三)
Oct 09 #PHP
在PHP3中实现SESSION的功能(一)
Oct 09 #PHP
我用php+mysql写的留言本
Oct 09 #PHP
在PHP3中实现SESSION的功能(三)
Oct 09 #PHP
You might like
PHP答题类应用接口实例
2015/02/09 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
PHP微信API接口类
2016/08/22 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
JS之小练习代码
2008/10/12 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
深入探讨前端框架react
2015/12/09 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
Python在图片中添加文字的两种方法
2017/04/29 Python
python中实现k-means聚类算法详解
2017/11/11 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
大学生简单自荐信
2013/11/10 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
检讨书格式
2015/05/07 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python