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
[解决办法]
[解决办法]
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编码
?>