簡繁体转换的class
【字号:
大 中 小】
日期:2023-08-28 16:30:47浏览:82作者:馨心
這是以class包裝好的簡繁體轉換的class, 另外需要兩個table檔: 1. http://www.jerry.com.tw/php/big5.map 2. http://www.jerry.com.tw/php/gb.map 程式如下: CCharset.php3 <? //===================================================== // 程式員: 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"//如果要放到別的路徑,要加上完整路徑 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 //====直接轉換文字串 的使用方法======== include("CCharset.php3"); $obj=new CCharset; $big5="這是一個big5的文字串"$tgb=$obj->Big5_Gb($big5); echo $tgb; //===> $tgb為轉換好的gb碼字串 $tbig5=$obj->Gb_Big5($tgb); echo $tbig5; // 又被轉回來了: big5 //====================================== ?> <? //如果直接轉換網頁 或是檔案 // 語法 http://your.domain.com.tw/這個程式.php3?http://要轉碼的網頁url或檔案 // example: 轉換奇摩首頁 // http://your.domain.com.tw/這個程式.php3?http://www.kimo.com.tw/index.shtml // 注意: 以下寫法如遇到該網頁有使用cookie,例如認證user,可能會被踢回,login錯誤.. // 為什麼? 想想看吧... @_@ 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 "轉換過的 $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='https://www.uahao.com/bcjs/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 "注意:切換鈕請勿連續按"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>"?>;