«
PHP取GB2312编码字符串首字母的方法

时间:2008-5-31    作者:Deri    分类: 分享


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