lily 2007-8-1 22:28
简单的php取GB2312编码字符串首字母的方法
<p>php]<BR><?php<BR>/*<BR>* @author: <A href="http://www.phpchina.com/mailto:zhuyubing@gmail.com"><FONT color=#22229c>zhuyubing@gmail.com</FONT></A><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><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>?><BR>[/php]</p> <center><input type="image" onclick=copyToClipBoard() src="http://www.phpchina.com/images/phpcn_book_bu_tj.gif" border="0"></center>