php汉字转拼音

='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 PageRankeg_replace("/[^a-z0-9]*/", '', $_Res);

}



function _Pinyin($_Num, $_Data)

{

        if    ($_Num>0      && $_Num<160   ) return chr($_Num);

        elseif($_Num<-20319 || $_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

拷贝源代码
用法:
echo Pinyin('我是中华人民共和华人'); //默认是gb编码
echo Pinyin('我是中华人民共和华人',1); //第二个参数随意设置即为utf8编码

顺便说句,我要-人气购物助手这个站的部分功能就是这么实现的。

 

php汉字转拼音_第1张图片

你可能感兴趣的:(Php)