繁体中文转换为简体中文的PHP函数
感谢网友Keyes提供移植用的Delphi源代码。其调用方式为$txt=gbtobig5($txt)。
(注:源代码中的include "data_gb.php";这个文件在就是一个数组
<?php
/***********************************************************************
Written by caocao
caocao@eastday.com
With the help of Keyes
Keyes2000@263.net
***********************************************************************/
function isgb($code) {
if (strlen($code) >= 2) {
$code = strtok($code, "");
if ((ord($code[0]) < 161) || (ord($code[0]) >= 247)) {
return (0);
} else {
if ((ord($code[1]) <= 161) || (ord($code[1]) >= 254)) {
return (0);
} else {
return (1);
}
}
} else {
return (1);
}
}
function gboffset($code) {
if (strlen($code) >= 2) {
$code = strtok($code, "");
return ((ord($code[0]) - 161) * 94 + (ord($code[1]) - 161));
} else {
return (-1);
}
}
function wordtostring($code) {
return (chr(hexdec(substr($code, 0, 2))) . chr(hexdec(substr($code, 2, 2))));
}
function gbtobig5($code) {
include "data_gb.php";
$output = "";
$length = strlen($code);
$code = strtok($code, "");
$idx = 0;
while ($idx < $length) {
$tmpStr = $code[$idx] . $code[$idx + 1];
if (isgb($tmpStr)) {
$offset = gboffset($tmpStr);
if (($offset >= 0) || ($offset <= 8177)) {
$output.= wordtostring($gborder[$offset]);
$idx++;
} else {
$output.= $code[$idx];
}
} else {
$output.= $code[$idx];
}
$idx++;
}
return ($output);
};
?>文章链接:http://www.phprm.com/function/05b9ca822a04f4318267307db64c135f.html
随便收藏,请保留本文地址!