Home  >  Article  >  Backend Development  >  Class_PHP tutorial for conversion from Simplified to Traditional Chinese

Class_PHP tutorial for conversion from Simplified to Traditional Chinese

WBOY
WBOYOriginal
2016-07-21 16:01:51731browse

This is a class packaged in Simplified and Traditional Chinese.
Another two table files are needed:
1. http://www.jerry.com.tw/php/big5.map
2. http://www.jerry.com.tw/php/gb.map
The program is as follows: CCharset.php3

// Programmer: Magic Jerry
//
// function Big5_Gb($str) => big5 to GB for string
// function Gb_Big5($str) => GB to Big5 for string
//== ================================================== =
class CCharset {

var $gb_map="gb.map"; //If you want to put it in another path, add the complete path
var $big5_map="big5.map" ; //For example="/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$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$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;

}

}
?>

================================================ ======================
Usage example:
// Designer: Magic Jerry


//====How to directly convert text string========
include("CCharset.php3");
$obj=new CCharset;
$big5= "This is a big5 text string";
$tgb=$obj->Big5_Gb($big5);
echo $tgb; //===> $tgb is the converted gb codeword String
$tbig5=$obj->Gb_Big5($tgb);
echo $tbig5; // Returned again: big5
//=========== ===========================
?>




< ?
//If you convert web pages or files directly
// Syntax http://your.domain.com.tw/this program.php3?http://Web page url or file to be transcoded
// example: Convert Kimo homepage
// http://your.domain.com.tw/this program.php3?http://www.kimo.com.tw/index.shtml
// Note: If the following writing method encounters a web page that uses cookies, such as authenticating users, it may be kicked back and cause a login error.
// Why? Think about it... @_@
include(" CCharset.php3");
$file=$QUERY_STRING;
$fcontents = join( '', file( "$file" ) );
$fcontents=str_replace("", "", $fcontents);
$code=new CCharset;
$gb=$code->Big5_Gb($fcontents);
echo $ gb;
?>



Example:


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 "

";

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
";
$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 "
  

";

echo
"";

echo "";
include("hows.php3");
echo "

";
echo "";
echo "";
echo "";
echo "";
echo "";

echo "";
echo "
";
echo "";

echo "
";
echo "
";
echo "";
echo "";
echo "";
echo "
";
echo "echo "onmouseout="imgOff('img4')" ";
echo "onmouseover="imgOn('img4')" ";
echo ">";
echo "";
echo "
";
echo "
";
include("hows_2.php3");
echo "
";
echo "
";
echo "";
$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 "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";

echo "";
echo "";
echo "";
echo "
";
echo "";
echo "";
echo "
";
echo "
";
echo "";
echo "";
echo "
";
echo "
";
echo "";
echo "";
echo "
";
echo "
";
echo "";
echo "";
echo "
";
echo "
";
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 "";
else echo "
";
echo "";
echo "
";
} else {
if(strlen($QUERY_STRING))
echo "";
else echo "
";
echo "";
echo "
";
}
echo "
";
echo "";
echo "";
echo "
";;
echo "
";
echo "";
echo "";
echo "
";
echo "
";
echo "";
echo "";
echo "
";
echo "
";
echo "";
echo "";
echo "
";
echo "
";
echo "注意:切換鈕請勿連續按";
echo "
";
echo "
";
echo "";

echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";

?> 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/316670.htmlTechArticle這是以class包裝好的簡繁體轉換的class, 另外需要兩個table檔: 1. http://www.jerry.com.tw/php/big5.map 2. http://www.jerry.com.tw/php/gb.map 程式如下: CCharset.p...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn