php查询汉字的拼音首字母的函数
function getfirst($str, $charset='utf8'){
$dict=array(
'a'=>0xB0C4,
'b'=>0xB2C0,
'c'=>0xB4ED,
'd'=>0xB6E9,
'e'=>0xB7A1,
'f'=>0xB8C0,
'g'=>0xB9FD,
'h'=>0xBBF6,
'j'=>0xBFA5,
'k'=>0xC0AB,
'l'=>0xC2E7,
'm'=>0xC4C2,
'n'=>0xC5B5,
'o'=>0xC5BD,
'p'=>0xC6D9,
'q'=>0xC8BA,
'r'=>0xC8F5,
's'=>0xCBF9,
't'=>0xCDD9,
'w'=>0xCEF3,
'x'=>0xD188,
'y'=>0xD4D0,
'z'=>0xD7F9,
);
if ('utf8' == $charset){
$str = iconv("UTF-8", "gb2312", $str);
}
$str_1 = substr($str, 0, 1);
//取GB2312字符串首字母,原理是GBK汉字是按拼音顺序编码的.
if ($str_1>=chr(0x81) && $str_1<=chr(0xfe)){
$num = hexdec(bin2hex(substr($str, 0, 2)));
foreach ($dict as $k=>$v){
if($v>=$num){
break;
}
}
return $k;
}else {
return $str_1;
}
}
echo getfirst('中')."
";
echo getfirst('华')."
";
echo getfirst('人')."
";
echo getfirst('民')."
";
echo getfirst('共')."
";
echo getfirst('和')."
";
echo getfirst('国')."
";
echo getfirst('万岁')."
";
echo getfirst('c')."
";
echo getfirst('h')."
";
echo getfirst('i')."
";
echo getfirst('n')."
";
echo getfirst('a')."
";