标签:
PHP获取汉字首字母函数,该方法可用于排序、查询等。
主要功能是:功能明确,易于修改维护和扩展; 英文的字串:不变返回(包括数字);中文字符串:返回拼音首字符; 中英混合串: 返回拼音首字符和英文。
示例代码:GetFirstPy.php
<?php function getFirstLetter($str = ‘‘) { include(‘./GBK.php‘); //返回值 $res = ‘‘; if (!$str) return $res; $s1 = iconv("UTF-8", "gbk", $str); $s2 = iconv("gbk", "UTF-8", $s1); if ($s2 == $str) { $str = $s1; } for ($i = 0; $i < strlen($str); $i++) { //获取俩个字节组成字符 $ch = substr($str, $i, 2); //字符首字节的ASCII码 $ch1_code = ord($ch{0}); //汉字占俩个字节,坐标+1 $i++; if ($ch1_code <= 254 && $ch1_code >= 170) { $ch2_code = ord($ch{1}); //优先处理GB-2312汉字. if ($ch2_code > 160) { //查找GB-2312 $no = ($ch1_code - 176) * 94 + ($ch2_code - 160); $res .= $GB_2312[$no - 1]; } else { //查找GBK_4 $no = ($ch1_code - 170) * 97 + ($ch2_code - 63); $res .= $GBK_4[$no - 1]; } }else if ($ch1_code <= 160 && $ch1_code >= 129) { $ch2_code = ord($ch{1}); //查找GBK_3 $no = ($ch1_code - 129) * 191 + ($ch2_code - 63); echo " ".$no; echo $GBK_3[$no - 4].$GBK_3[$no - 3].$GBK_3[$no - 2]."-".$GBK_3[$no - 1]."-".$GBK_3[$no].$GBK_3[$no + 1].$GBK_3[$no + 2]; $res .= $GBK_3[$no - 1]; } else if($ch1_code <= 169 && $ch1_code >= 161) { //GBK汉字特殊字符 $res .= $ch; } else { //不是GBK汉字 $res .= $ch{0}; $i--; } } return $res; } $a = getFirstLetter(" 関関関関"); // 関 $a = iconv(‘gbk‘, ‘utf-8‘, $a); echo $a;
标签:
原文地址:http://www.cnblogs.com/520fyl/p/5481118.html