簡繁体转换的class

  這是以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='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>";

  ?>