首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php汉字转拼音首字母有关问题

2013-11-26 
php汉字转拼音首字母问题。程序运行后,发现字符串中有些文字转换不了。如果是单独输入这些字,直接去转换可以

php汉字转拼音首字母问题。
程序运行后,发现字符串中有些文字转换不了。如果是单独输入这些字,直接去转换可以读取出拼音开头字母。
在字符串中就不行。程序代码如下:
 <?php   

 function getfirstchar($s0){     

     $fchar = ord($s0{0});  

     if($fchar >= ord("a") and $fchar <= ord("Z") )return strtoupper($s0{0});  

     $s1 = iconv("UTF-8","gb2312", $s0);  

     $s2 = iconv("gb2312","UTF-8", $s1);  

     if($s2 == $s0){$s = $s1;}else{$s = $s0;}  

     $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;  

     if($asc >= -20319 and $asc <= -20284) return "A";  

     if($asc >= -20283 and $asc <= -19776) return "B";  

     if($asc >= -19775 and $asc <= -19219) return "C";  

     if($asc >= -19218 and $asc <= -18711) return "D";  
 
     if($asc >= -18710 and $asc <= -18527) return "E";  

     if($asc >= -18526 and $asc <= -18240) return "F";  

     if($asc >= -18239 and $asc <= -17923) return "G";  

     if($asc >= -17922 and $asc <= -17418) return "H";  

     if($asc >= -17417 and $asc <= -16475) return "J";  

     if($asc >= -16474 and $asc <= -16213) return "K";  

     if($asc >= -16212 and $asc <= -15641) return "L";  

     if($asc >= -15640 and $asc <= -15166) return "M";  

     if($asc >= -15165 and $asc <= -14923) return "N";  

     if($asc >= -14922 and $asc <= -14915) return "O";  

     if($asc >= -14914 and $asc <= -14631) return "P";  

     if($asc >= -14630 and $asc <= -14150) return "Q";  

     if($asc >= -14149 and $asc <= -14091) return "R";  

     if($asc >= -14090 and $asc <= -13319) return "S";  

     if($asc >= -13318 and $asc <= -12839) return "T";  

     if($asc >= -12838 and $asc <= -12557) return "W"; 
  
     if($asc >= -12556 and $asc <= -11848) return "X";  

     if($asc >= -11847 and $asc <= -11056) return "Y";  

     if($asc >= -11055 and $asc <= -10247) return "Z";  

     return null;  

 }   

 function pinyin1($zh){  

     $ret = "";  

     $s1 = iconv("UTF-8","gb2312", $zh);  

     $s2 = iconv("gb2312","UTF-8", $s1);  

     if($s2 == $zh){$zh = $s1;}  

     for($i = 0; $i < strlen($zh); $i++){  

         $s1 = substr($zh,$i,1);  

         $p = ord($s1); 

         if($p > 160){  

             $s2 = substr($zh,$i++,2);  

             $ret .= getfirstchar($s2); 

         }else{  

             $ret .= $s1;  

         }  

     }  

     return $ret;  


 }  

 echo "邮政路小学";  

 echo pinyin1('邮政路小学');    

 ?> 
输出结果为:邮政路小学YZLX  

单独输入小字,用getfirstchar("小")可以转换成功。      
PHP获取拼音首字母
[解决办法]
用qq提供的词典

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    /**
     *
     * 汉字转换拼音函数
     *
     * @param $str string 需要转换的字符串
     * @param $ishead bool 是否只显示第一个字母
     * @param $ucfirst bool 是否第一个字母大写,默认为以下划线分割字之间:eg wo_men_da_jia,如果第三个参数是TRUE则为驼峰式
     * @return String 把汉字转化为拼音的字符串
     */
    function GetPinyin($str,$ishead = FALSE,$ucfirst = FALSE)
    {
        $pinyins = array();
        $restr = '';
        $str = trim(iconv('UTF-8','GB2312',$str));
        $slen = strlen($str);
        if($slen<2)
        {
            return $str;
        }
        if(count($pinyins)==0)
        {
            $fp = fopen(APPPATH.'/resources/pinyin.dat','r');
            while(!feof($fp))
            {
                $line = trim(fgets($fp));
                $pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
            }
            fclose($fp);
        }
        for($i=0;$i<$slen;$i++)
        {
            if(ord($str[$i])>0x80)
            {
                $c = $str[$i].$str[$i+1];
                $i++;
                if(isset($pinyins[$c]))
                {
                    if( ! $ishead AND $ucfirst)
                    {
                        $restr .= ucfirst($pinyins[$c]);
                    }
                    elseif( ! $ishead AND ! $ucfirst)
                    {
                        $restr .= '_'.$pinyins[$c];
                    }
                    else
                    {
                        $restr .= $pinyins[$c][0];
                    }
                }
                else


                {
                    $restr .= "_";
                }
            }
            else if( preg_match("/[a-z0-9]/",$str[$i]) )
            {
                $restr .= $str[$i];
            }
            else
            {
                $restr .= "_";
            }
        }

        if($restr[0] == '_')
        {
            return substr($restr,1);
        }
        else
        {
            return $restr;
        }
    }

/* End of file pinyin_helper.php */
/* Location ./application/helpers/pinyin_helper.php */


[解决办法]
function Pinyin($_String,$_Code='gb2312') 

        $_DataKey = "a
[解决办法]
ai
[解决办法]
an
[解决办法]
ang
[解决办法]
ao
[解决办法]
ba
[解决办法]
bai
[解决办法]
ban
[解决办法]
bang
[解决办法]
bao
[解决办法]
bei
[解决办法]
ben
[解决办法]
beng
[解决办法]
bi
[解决办法]
bian
[解决办法]
biao
[解决办法]
bie
[解决办法]
bin
[解决办法]
bing
[解决办法]
bo
[解决办法]
bu
[解决办法]
ca
[解决办法]
cai
[解决办法]
can
[解决办法]
cang
[解决办法]
cao
[解决办法]
ce
[解决办法]
ceng
[解决办法]
cha". 
                "
[解决办法]
chai
[解决办法]
chan
[解决办法]
chang
[解决办法]
chao
[解决办法]
che
[解决办法]
chen
[解决办法]
cheng
[解决办法]
chi
[解决办法]
chong
[解决办法]
chou
[解决办法]
chu
[解决办法]
chuai
[解决办法]
chuan
[解决办法]
chuang
[解决办法]
chui
[解决办法]
chun
[解决办法]
chuo
[解决办法]
ci
[解决办法]
cong
[解决办法]
cou
[解决办法]
cu
[解决办法]
". 
                "cuan
[解决办法]
cui
------解决方案--------------------


cun
[解决办法]
cuo
[解决办法]
da
[解决办法]
dai
[解决办法]
dan
[解决办法]
dang
[解决办法]
dao
[解决办法]
de
[解决办法]
deng
[解决办法]
di
[解决办法]
dian
[解决办法]
diao
[解决办法]
die
[解决办法]
ding
[解决办法]
diu
[解决办法]
dong
[解决办法]
dou
[解决办法]
du
[解决办法]
duan
[解决办法]
dui
[解决办法]
dun
[解决办法]
duo
[解决办法]
e
[解决办法]
en
[解决办法]
er". 
                "
[解决办法]
fa
[解决办法]
fan
[解决办法]
fang
[解决办法]
fei
[解决办法]
fen
[解决办法]
feng
[解决办法]
fo
[解决办法]
fou
[解决办法]
fu
[解决办法]
ga
[解决办法]
gai
[解决办法]
gan
[解决办法]
gang
[解决办法]
gao
[解决办法]
ge
[解决办法]
gei
[解决办法]
gen
[解决办法]
geng
[解决办法]
gong
[解决办法]
gou
[解决办法]
gu
[解决办法]
gua
[解决办法]
guai
[解决办法]
guan
[解决办法]
guang
[解决办法]
gui". 
                "
[解决办法]
gun
[解决办法]
guo
[解决办法]
ha
[解决办法]
hai
[解决办法]
han
[解决办法]
hang
[解决办法]
hao
[解决办法]
he
[解决办法]
hei
[解决办法]
hen
[解决办法]
heng
[解决办法]
hong
[解决办法]
hou
[解决办法]
hu
[解决办法]
hua
[解决办法]
huai
[解决办法]
huan
[解决办法]
huang
[解决办法]
hui
[解决办法]
hun
[解决办法]
huo
[解决办法]
ji
[解决办法]
jia
[解决办法]
jian
[解决办法]
jiang". 
                "
[解决办法]
jiao
[解决办法]
jie
[解决办法]
jin
[解决办法]
jing
[解决办法]
jiong
[解决办法]
jiu
[解决办法]
ju
------解决方案--------------------


juan
[解决办法]
jue
[解决办法]
jun
[解决办法]
ka
[解决办法]
kai
[解决办法]
kan
[解决办法]
kang
[解决办法]
kao
[解决办法]
ke
[解决办法]
ken
[解决办法]
keng
[解决办法]
kong
[解决办法]
kou
[解决办法]
ku
[解决办法]
kua
[解决办法]
kuai
[解决办法]
kuan
[解决办法]
kuang". 
                "
[解决办法]
kui
[解决办法]
kun
[解决办法]
kuo
[解决办法]
la
[解决办法]
lai
[解决办法]
lan
[解决办法]
lang
[解决办法]
lao
[解决办法]
le
[解决办法]
lei
[解决办法]
leng
[解决办法]
li
[解决办法]
lia
[解决办法]
lian
[解决办法]
liang
[解决办法]
liao
[解决办法]
lie
[解决办法]
lin
[解决办法]
ling
[解决办法]
liu
[解决办法]
long
[解决办法]
lou
[解决办法]
lu
[解决办法]
lv
[解决办法]
luan
[解决办法]
lue". 
                "
[解决办法]
lun
[解决办法]
luo
[解决办法]
ma
[解决办法]
mai
[解决办法]
man
[解决办法]
mang
[解决办法]
mao
[解决办法]
me
[解决办法]
mei
[解决办法]
men
[解决办法]
meng
[解决办法]
mi
[解决办法]
mian
[解决办法]
miao
[解决办法]
mie
[解决办法]
min
[解决办法]
ming
[解决办法]
miu
[解决办法]
mo
[解决办法]
mou
[解决办法]
mu
[解决办法]
na
[解决办法]
nai
[解决办法]
nan
[解决办法]
nang
[解决办法]
nao
[解决办法]
ne". 
                "
[解决办法]
nei
[解决办法]
nen
[解决办法]
neng
[解决办法]
ni
[解决办法]
nian
[解决办法]
niang
[解决办法]
niao
[解决办法]
nie
[解决办法]
nin
[解决办法]
ning
[解决办法]
niu
[解决办法]
nong
------解决方案--------------------


nu
[解决办法]
nv
[解决办法]
nuan
[解决办法]
nue
[解决办法]
nuo
[解决办法]
o
[解决办法]
ou
[解决办法]
pa
[解决办法]
pai
[解决办法]
pan
[解决办法]
pang
[解决办法]
pao
[解决办法]
pei
[解决办法]
pen". 
                "
[解决办法]
peng
[解决办法]
pi
[解决办法]
pian
[解决办法]
piao
[解决办法]
pie
[解决办法]
pin
[解决办法]
ping
[解决办法]
po
[解决办法]
pu
[解决办法]
qi
[解决办法]
qia
[解决办法]
qian
[解决办法]
qiang
[解决办法]
qiao
[解决办法]
qie
[解决办法]
qin
[解决办法]
qing
[解决办法]
qiong
[解决办法]
qiu
[解决办法]
qu
[解决办法]
quan
[解决办法]
que
[解决办法]
qun
[解决办法]
ran
[解决办法]
rang". 
                "
[解决办法]
rao
[解决办法]
re
[解决办法]
ren
[解决办法]
reng
[解决办法]
ri
[解决办法]
rong
[解决办法]
rou
[解决办法]
ru
[解决办法]
ruan
[解决办法]
rui
[解决办法]
run
[解决办法]
ruo
[解决办法]
sa
[解决办法]
sai
[解决办法]
san
[解决办法]
sang
[解决办法]
sao
[解决办法]
se
[解决办法]
sen
[解决办法]
seng
[解决办法]
sha
[解决办法]
shai
[解决办法]
shan
[解决办法]
shang
[解决办法]
shao
[解决办法]
". 
                "she
[解决办法]
shen
[解决办法]
sheng
[解决办法]
shi
[解决办法]
shou
[解决办法]
shu
[解决办法]
shua
[解决办法]
shuai
[解决办法]
shuan
[解决办法]
shuang
[解决办法]
shui
[解决办法]
shun
[解决办法]
shuo
[解决办法]
si
[解决办法]
song
[解决办法]
sou
[解决办法]
su
[解决办法]
suan
[解决办法]
sui
------解决方案--------------------


sun
[解决办法]
suo
[解决办法]
ta
[解决办法]
tai
[解决办法]
". 
                "tan
[解决办法]
tang
[解决办法]
tao
[解决办法]
te
[解决办法]
teng
[解决办法]
ti
[解决办法]
tian
[解决办法]
tiao
[解决办法]
tie
[解决办法]
ting
[解决办法]
tong
[解决办法]
tou
[解决办法]
tu
[解决办法]
tuan
[解决办法]
tui
[解决办法]
tun
[解决办法]
tuo
[解决办法]
wa
[解决办法]
wai
[解决办法]
wan
[解决办法]
wang
[解决办法]
wei
[解决办法]
wen
[解决办法]
weng
[解决办法]
wo
[解决办法]
wu". 
                "
[解决办法]
xi
[解决办法]
xia
[解决办法]
xian
[解决办法]
xiang
[解决办法]
xiao
[解决办法]
xie
[解决办法]
xin
[解决办法]
xing
[解决办法]
xiong
[解决办法]
xiu
[解决办法]
xu
[解决办法]
xuan
[解决办法]
xue
[解决办法]
xun
[解决办法]
ya
[解决办法]
yan
[解决办法]
yang
[解决办法]
yao
[解决办法]
ye
[解决办法]
yi
[解决办法]
yin
[解决办法]
ying
[解决办法]
yo
[解决办法]
yong
[解决办法]
you". 
                "
[解决办法]
yu
[解决办法]
yuan
[解决办法]
yue
[解决办法]
yun
[解决办法]
za
[解决办法]
zai
[解决办法]
zan
[解决办法]
zang
[解决办法]
zao
[解决办法]
ze
[解决办法]
zei
[解决办法]
zen
[解决办法]
zeng
[解决办法]
zha
[解决办法]
zhai
[解决办法]
zhan
[解决办法]
zhang
[解决办法]
zhao
[解决办法]
zhe
[解决办法]
zhen
[解决办法]
zheng
[解决办法]
zhi
[解决办法]
zhong
[解决办法]
". 
                "zhou
[解决办法]
zhu
[解决办法]
zhua
[解决办法]
zhuai


[解决办法]
zhuan
[解决办法]
zhuang
[解决办法]
zhui
[解决办法]
zhun
[解决办法]
zhuo
[解决办法]
zi
[解决办法]
zong
[解决办法]
zou
[解决办法]
zu
[解决办法]
zuan
[解决办法]
zui
[解决办法]
zun
[解决办法]
zuo"; 
 
        $_DataValue = "-20319
[解决办法]
-20317
[解决办法]
-20304
[解决办法]
-20295
[解决办法]
-20292
[解决办法]
-20283
[解决办法]
-20265
[解决办法]
-20257
[解决办法]
-20242
[解决办法]
-20230
[解决办法]
-20051
[解决办法]
-20036
[解决办法]
-20032
[解决办法]
-20026
[解决办法]
-20002
[解决办法]
-19990". 
                "
[解决办法]
-19986
[解决办法]
-19982
[解决办法]
-19976
[解决办法]
-19805
[解决办法]
-19784
[解决办法]
-19775
[解决办法]
-19774
[解决办法]
-19763
[解决办法]
-19756
[解决办法]
-19751
[解决办法]
-19746
[解决办法]
-19741
[解决办法]
-19739
[解决办法]
-19728
[解决办法]
-19725". 
                "
[解决办法]
-19715
[解决办法]
-19540
[解决办法]
-19531
[解决办法]
-19525
[解决办法]
-19515
[解决办法]
-19500
[解决办法]
-19484
[解决办法]
-19479
[解决办法]
-19467
[解决办法]
-19289
[解决办法]
-19288
[解决办法]
-19281
[解决办法]
-19275
[解决办法]
-19270
[解决办法]
-19263". 
                "
[解决办法]
-19261
[解决办法]
-19249
[解决办法]
-19243
[解决办法]
-19242
[解决办法]
-19238
[解决办法]
-19235
[解决办法]
-19227
[解决办法]
-19224
[解决办法]
-19218
[解决办法]
-19212
[解决办法]
-19038
[解决办法]
-19023
[解决办法]
-19018
[解决办法]
-19006
[解决办法]
-19003". 
                "
[解决办法]
-18996
[解决办法]
-18977
[解决办法]
-18961
[解决办法]
-18952


[解决办法]
-18783
[解决办法]
-18774
[解决办法]
-18773
[解决办法]
-18763
[解决办法]
-18756
[解决办法]
-18741
[解决办法]
-18735
[解决办法]
-18731
[解决办法]
-18722
[解决办法]
-18710
[解决办法]
-18697". 
                "
[解决办法]
-18696
[解决办法]
-18526
[解决办法]
-18518
[解决办法]
-18501
[解决办法]
-18490
[解决办法]
-18478
[解决办法]
-18463
[解决办法]
-18448
[解决办法]
-18447
[解决办法]
-18446
[解决办法]
-18239
[解决办法]
-18237
[解决办法]
-18231
[解决办法]
-18220
[解决办法]
-18211". 
                "
[解决办法]
-18201
[解决办法]
-18184
[解决办法]
-18183
[解决办法]
-18181
[解决办法]
-18012
[解决办法]
-17997
[解决办法]
-17988
[解决办法]
-17970
[解决办法]
-17964
[解决办法]
-17961
[解决办法]
-17950
[解决办法]
-17947
[解决办法]
-17931
[解决办法]
-17928
[解决办法]
-17922". 
                "
[解决办法]
-17759
[解决办法]
-17752
[解决办法]
-17733
[解决办法]
-17730
[解决办法]
-17721
[解决办法]
-17703
[解决办法]
-17701
[解决办法]
-17697
[解决办法]
-17692
[解决办法]
-17683
[解决办法]
-17676
[解决办法]
-17496
[解决办法]
-17487
[解决办法]
-17482
[解决办法]
-17468". 
                "
[解决办法]
-17454
[解决办法]
-17433
[解决办法]
-17427
[解决办法]
-17417
[解决办法]
-17202
[解决办法]
-17185
[解决办法]
-16983
[解决办法]
-16970
[解决办法]
-16942
[解决办法]
-16915
[解决办法]
-16733
[解决办法]
-16708
[解决办法]
-16706
[解决办法]
-16689
[解决办法]
-16664". 
                "
[解决办法]
-16657
[解决办法]
-16647
[解决办法]
-16474
[解决办法]
-16470
[解决办法]
-16465
------解决方案--------------------


-16459
[解决办法]
-16452
[解决办法]
-16448
[解决办法]
-16433
[解决办法]
-16429
[解决办法]
-16427
[解决办法]
-16423
[解决办法]
-16419
[解决办法]
-16412
[解决办法]
-16407". 
                "
[解决办法]
-16403
[解决办法]
-16401
[解决办法]
-16393
[解决办法]
-16220
[解决办法]
-16216
[解决办法]
-16212
[解决办法]
-16205
[解决办法]
-16202
[解决办法]
-16187
[解决办法]
-16180
[解决办法]
-16171
[解决办法]
-16169
[解决办法]
-16158
[解决办法]
-16155
[解决办法]
-15959". 
                "
[解决办法]
-15958
[解决办法]
-15944
[解决办法]
-15933
[解决办法]
-15920
[解决办法]
-15915
[解决办法]
-15903
[解决办法]
-15889
[解决办法]
-15878
[解决办法]
-15707
[解决办法]
-15701
[解决办法]
-15681
[解决办法]
-15667
[解决办法]
-15661
[解决办法]
-15659
[解决办法]
-15652". 
                "
[解决办法]
-15640
[解决办法]
-15631
[解决办法]
-15625
[解决办法]
-15454
[解决办法]
-15448
[解决办法]
-15436
[解决办法]
-15435
[解决办法]
-15419
[解决办法]
-15416
[解决办法]
-15408
[解决办法]
-15394
[解决办法]
-15385
[解决办法]
-15377
[解决办法]
-15375
[解决办法]
-15369". 
                "
[解决办法]
-15363
[解决办法]
-15362
[解决办法]
-15183
[解决办法]
-15180
[解决办法]
-15165
[解决办法]
-15158
[解决办法]
-15153
[解决办法]
-15150
[解决办法]
-15149
[解决办法]
-15144
[解决办法]
-15143
[解决办法]
-15141
[解决办法]
-15140
[解决办法]
-15139
[解决办法]
-15128". 
                "
[解决办法]
-15121
[解决办法]
-15119
[解决办法]
-15117
[解决办法]
-15110
[解决办法]
-15109
[解决办法]
-14941
[解决办法]
-14937
------解决方案--------------------


-14933
[解决办法]
-14930
[解决办法]
-14929
[解决办法]
-14928
[解决办法]
-14926
[解决办法]
-14922
[解决办法]
-14921
[解决办法]
-14914". 
                "
[解决办法]
-14908
[解决办法]
-14902
[解决办法]
-14894
[解决办法]
-14889
[解决办法]
-14882
[解决办法]
-14873
[解决办法]
-14871
[解决办法]
-14857
[解决办法]
-14678
[解决办法]
-14674
[解决办法]
-14670
[解决办法]
-14668
[解决办法]
-14663
[解决办法]
-14654
[解决办法]
-14645". 
                "
[解决办法]
-14630
[解决办法]
-14594
[解决办法]
-14429
[解决办法]
-14407
[解决办法]
-14399
[解决办法]
-14384
[解决办法]
-14379
[解决办法]
-14368
[解决办法]
-14355
[解决办法]
-14353
[解决办法]
-14345
[解决办法]
-14170
[解决办法]
-14159
[解决办法]
-14151
[解决办法]
-14149". 
                "
[解决办法]
-14145
[解决办法]
-14140
[解决办法]
-14137
[解决办法]
-14135
[解决办法]
-14125
[解决办法]
-14123
[解决办法]
-14122
[解决办法]
-14112
[解决办法]
-14109
[解决办法]
-14099
[解决办法]
-14097
[解决办法]
-14094
[解决办法]
-14092
[解决办法]
-14090
[解决办法]
-14087". 
                "
[解决办法]
-14083
[解决办法]
-13917
[解决办法]
-13914
[解决办法]
-13910
[解决办法]
-13907
[解决办法]
-13906
[解决办法]
-13905
[解决办法]
-13896
[解决办法]
-13894
[解决办法]
-13878
[解决办法]
-13870
[解决办法]
-13859
[解决办法]
-13847
[解决办法]
-13831
[解决办法]
-13658". 
                "
[解决办法]
-13611
[解决办法]
-13601
[解决办法]
-13406
[解决办法]
-13404
[解决办法]
-13400
[解决办法]
-13398
[解决办法]
-13395
[解决办法]
-13391
[解决办法]
-13387
------解决方案--------------------


-13383
[解决办法]
-13367
[解决办法]
-13359
[解决办法]
-13356
[解决办法]
-13343
[解决办法]
-13340". 
                "
[解决办法]
-13329
[解决办法]
-13326
[解决办法]
-13318
[解决办法]
-13147
[解决办法]
-13138
[解决办法]
-13120
[解决办法]
-13107
[解决办法]
-13096
[解决办法]
-13095
[解决办法]
-13091
[解决办法]
-13076
[解决办法]
-13068
[解决办法]
-13063
[解决办法]
-13060
[解决办法]
-12888". 
                "
[解决办法]
-12875
[解决办法]
-12871
[解决办法]
-12860
[解决办法]
-12858
[解决办法]
-12852
[解决办法]
-12849
[解决办法]
-12838
[解决办法]
-12831
[解决办法]
-12829
[解决办法]
-12812
[解决办法]
-12802
[解决办法]
-12607
[解决办法]
-12597
[解决办法]
-12594
[解决办法]
-12585". 
                "
[解决办法]
-12556
[解决办法]
-12359
[解决办法]
-12346
[解决办法]
-12320
[解决办法]
-12300
[解决办法]
-12120
[解决办法]
-12099
[解决办法]
-12089
[解决办法]
-12074
[解决办法]
-12067
[解决办法]
-12058
[解决办法]
-12039
[解决办法]
-11867
[解决办法]
-11861
[解决办法]
-11847". 
                "
[解决办法]
-11831
[解决办法]
-11798
[解决办法]
-11781
[解决办法]
-11604
[解决办法]
-11589
[解决办法]
-11536
[解决办法]
-11358
[解决办法]
-11340
[解决办法]
-11339
[解决办法]
-11324
[解决办法]
-11303
[解决办法]
-11097
[解决办法]
-11077
[解决办法]
-11067
[解决办法]
-11055". 
                "
[解决办法]
-11052
[解决办法]
-11045
[解决办法]
-11041
[解决办法]
-11038
[解决办法]
-11024
[解决办法]
-11020
[解决办法]
-11019
[解决办法]
-11018
[解决办法]
-11014
[解决办法]
-10838
[解决办法]
-10832
------解决方案--------------------


-10815
[解决办法]
-10800
[解决办法]
-10790
[解决办法]
-10780". 
                "
[解决办法]
-10764
[解决办法]
-10587
[解决办法]
-10544
[解决办法]
-10533
[解决办法]
-10519
[解决办法]
-10331
[解决办法]
-10329
[解决办法]
-10328
[解决办法]
-10322
[解决办法]
-10315
[解决办法]
-10309
[解决办法]
-10307
[解决办法]
-10296
[解决办法]
-10281
[解决办法]
-10274". 
                "
[解决办法]
-10270
[解决办法]
-10262
[解决办法]
-10260
[解决办法]
-10256
[解决办法]
-10254"; 
        $_TDataKey    = explode('
[解决办法]
', $_DataKey); 
        $_TDataValue = explode('
[解决办法]
', $_DataValue); 
 
        $_Data = (php_VERSION>='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; $i<strlen($_String); $i++) 
        { 
                $_P = ord(substr($_String, $i, 1)); 
                if($_P>160) { $_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<-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<count($_Arr1); $i++) $_Res[$_Arr1[$i]] = $_Arr2[$i]; 
        return $_Res; 

echo Pinyin('山东菏泽牡丹区'); //默认是gb编码
echo Pinyin('这是中国山东菏泽牡丹区',1); //第二个参数随意设置即为utf8编码
?>


[解决办法]
引用:
用qq提供的词典


词典在哪,给个下载地址啊。。。源码中bat地址换上去就可以了吗

[解决办法]
pinyin.dat 下载地址搜索
http://www.baidu.com/s?wd=pinyin.dat&ie=utf-8

热点排行