欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

根据汉字取拼音,并附有编码功能

程序员文章站 2022-05-16 09:55:02
...
='5.0')?array_combine($_TDataKey,$_TDataValue):_Array_Combine($_TDataKey,$_TDataValue); 
        arsort($_Data); 
        reset($_Data); 

        if($_Code != 'gb2312') $_String = _U2_Utf8_Gb($_String); 
        $_Res = ''; 
        for($i=0; $i160) { $_Q = ord(substr($_String, ++$i, 1)); $_P = $_P*256 + $_Q - 65536; } 
                $_Res .= _Pinyin($_P, $_Data); 
        } 
        return preg_replace("/[^a-z0-9]*/", '', $_Res); 
} 

function _Pinyin($_Num, $_Data) 
{ 
        if    ($_Num>0      && $_Num<160   ) return chr($_Num); 
        elseif($_Num-10247) return ''; 
        else  { 
                foreach($_Data as $k=>$v){ if($v<=$_Num) break; } 
                return $k; 
        } 
} 

function _U2_Utf8_Gb($_C) 
{ 
        $_String = ''; 
        if($_C < 0x80) $_String .= $_C; 
        elseif($_C < 0x800) 
        { 
                $_String .= chr(0xC0 | $_C>>6); 
                $_String .= chr(0x80 | $_C & 0x3F); 
        }elseif($_C < 0x10000){ 
                $_String .= chr(0xE0 | $_C>>12); 
                $_String .= chr(0x80 | $_C>>6 & 0x3F); 
                $_String .= chr(0x80 | $_C & 0x3F); 
        } elseif($_C < 0x200000) { 
                $_String .= chr(0xF0 | $_C>>18); 
                $_String .= chr(0x80 | $_C>>12 & 0x3F); 
                $_String .= chr(0x80 | $_C>>6 & 0x3F); 
                $_String .= chr(0x80 | $_C & 0x3F); 
        } 
        return iconv('UTF-8', 'GB2312', $_String); 
} 

function _Array_Combine($_Arr1, $_Arr2) 
{ 
        for($i=0; $i