您的位置:首页网页设计PHP实例 → 簡繁体转换的class

簡繁体转换的class

时间:2004/11/7 3:23:00来源:本站整理作者:蓝点我要评论(0)

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

$fcontents=str_replace("","", $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;

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

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



?> 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 我的php文件怎么打开_php运算符怎么写 php 如何生成静态页面的函数PHP生成图片缩略图PHP session常见问题集锦及解决办法PHP实现同步远程Mysql

人气排行 DEDE在文章列表文章没有缩略图的不显示图片php+mysq修改用户密码我的php文件怎么打开_如何打开php文件的办法FCKeditor的配置和使用方法使用dedecms建站教程PHP+Ajax实现分页技术图片存储与浏览一例Linux+Apache+PHP+MySQLPHP生成图片缩略图