Heim  >  Artikel  >  Backend-Entwicklung  >  classified post 簡繁体转换的class

classified post 簡繁体转换的class

WBOY
WBOYOriginal
2016-07-29 08:34:371995Durchsuche

這是以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$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;
}
}
?>
===================================================================
使用範例:

// 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" ) );
$fc 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 "

";
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;
$fc
//echo "轉換過的 $CHAR_GB";
echo $fcontents;
exit;
}
//} else setcookie("CHAR_GB",0,time()+ 31536000);
echo "
";
include("hows.php3");
echo "

";
echo "";
echo "";
echo "";
echo "
";
echo "";
echo "
";
include("hows_2.php3");
echo "
";
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 "classified post 簡繁体转换的class";
echo "
";
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
echo "
";
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
echo "
";
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
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 "classified post 簡繁体转换的class";
echo "
";
} else {
if(strlen($QUERY_STRING))
echo "";
else echo "
";
echo "classified post 簡繁体转换的class";
echo "
";
}
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
echo "
";;
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
echo "
";
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
echo "
";
echo "
";
echo "";
echo "classified post 簡繁体转换的class";
echo "
";
echo "
";
echo "注意:切換鈕請勿連續按";
echo "
";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "classified post 簡繁体转换的class";
echo "";
echo "";
echo "";
echo "";
?> 

以上就介绍了classified post 簡繁体转换的class,包括了classified post方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn