首页 > php函数 > 繁体中文转换为简体中文的PHP函数

繁体中文转换为简体中文的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

随便收藏,请保留本文地址!

标签:none

发表留言