簡繁体转换的class

2016-01-29 14:22 17 1 收藏

簡繁体转换的class,簡繁体转换的class

【 tulaoshi.com - PHP 】

  這是以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

来源:http://www.tulaoshi.com/n/20160129/1493109.html

延伸阅读
标签: wps教程
WPS简繁文字转换视频 打开文档 如果电脑桌面上有WPS文件直接双击打开运行程序,没有文件的话可以在桌面空白处右击鼠标,在弹出的菜单中找到相应的选项即可。进行WPS程序后,可以看到最上面一排的菜单栏,找到审阅鼠标点击,下面会出现有关的菜单,我们可以看到简繁转换的功能,用户可以根据自己的需求自行选择,具体操作可以参考下图...
搜狗手机输入法简繁体转换方法   方法一: 1)打开搜狗手机输入法软件,点击上方设置选项; 2)点击输入设置,并往下拉,可以查看到中文输入-简繁休设置;   3)当你想选择简体中文时就选简体中文,想选繁体中文时就选择繁体中文;   方法二: 1)可是很多人觉得上面的方法太麻烦了,等到要...
标签: ASP
  <HTML <HEAD <TITLE New Document </TITLE <META NAME="Generator" CONTENT="www.knowsky.com" <META NAME="Author" CONTENT="www.knowsky.com" <META NAME="Keywords" CONTENT="www.knowsky.com" <META NAME="Description" CONTENT="www.knowsky.com" </HEAD <BODY <html <head <...
WPS中简繁体字转换怎么使用   现在虽然已经很少有使用繁体字的了,但是有遇到这样的文档的话我们也不能无能为力。因此,掌握这样一种操作方法也非常的实用。 简繁体字的自由转换可以省去我们切换输入法的麻烦,也无需tuLaoShi.com下载任何插件,只要你安装了WPS,这一项工作便可以在一分钟内搞定。以下是详细操作步骤。 操...
大家都知道香港或者台湾它们所使用的语言都是繁体字,因此如果与它们进行合作的话,那么它们发过来的文件也就是繁体字的了。今天公司收到一份来自香港的PPT文档,打开一看里面所有的文字都是繁体的。顿时一想如何将它们转换成简体的呢?犹豫了很长时间,经百度一下发现个不错的教程,其原理主要使用WPS自带工具来实现繁体转简体,而且操作相当...

经验教程

989

收藏

51
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部