php获取汉字拼音首字母的方法

现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序。这是中国人大多数使用的排序方法。那么在php程序中该如何操作呢?

下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的,这个可是经过小编实践应用过的,真的可以使用的哦。

//php获取中文字符拼音首字母

function getFirstCharter($str){

 if(empty($str)){return ‘‘;}

 $fchar=ord($str{0});

 if($fchar>=ord(‘A‘)&&$fchar<=ord(‘z‘)) return strtoupper($str{0});

 $s1=iconv(‘UTF-8‘,‘gb2312‘,$str);

 $s2=iconv(‘gb2312‘,‘UTF-8‘,$s1);

 $s=$s2==$str?$s1:$str;

 $asc=ord($s{0})*256+ord($s{1})-65536;

 if($asc>=-20319&&$asc<=-20284) return ‘A‘;

 if($asc>=-20283&&$asc<=-19776) return ‘B‘;

 if($asc>=-19775&&$asc<=-19219) return ‘C‘;

 if($asc>=-19218&&$asc<=-18711) return ‘D‘;

 if($asc>=-18710&&$asc<=-18527) return ‘E‘;

 if($asc>=-18526&&$asc<=-18240) return ‘F‘;

 if($asc>=-18239&&$asc<=-17923) return ‘G‘;

 if($asc>=-17922&&$asc<=-17418) return ‘H‘;

 if($asc>=-17417&&$asc<=-16475) return ‘J‘;

 if($asc>=-16474&&$asc<=-16213) return ‘K‘;

 if($asc>=-16212&&$asc<=-15641) return ‘L‘;

 if($asc>=-15640&&$asc<=-15166) return ‘M‘;

 if($asc>=-15165&&$asc<=-14923) return ‘N‘;

 if($asc>=-14922&&$asc<=-14915) return ‘O‘;

 if($asc>=-14914&&$asc<=-14631) return ‘P‘;

 if($asc>=-14630&&$asc<=-14150) return ‘Q‘;

 if($asc>=-14149&&$asc<=-14091) return ‘R‘;

 if($asc>=-14090&&$asc<=-13319) return ‘S‘;

 if($asc>=-13318&&$asc<=-12839) return ‘T‘;

 if($asc>=-12838&&$asc<=-12557) return ‘W‘;

 if($asc>=-12556&&$asc<=-11848) return ‘X‘;

 if($asc>=-11847&&$asc<=-11056) return ‘Y‘;

 if($asc>=-11055&&$asc<=-10247) return ‘Z‘;

 return null;

}

举例如下:

?


1

echo getFirstCharter(‘脚本之家www.jb51.net‘);//结果将输出:J

时间: 2024-10-26 18:28:09

php获取汉字拼音首字母的方法的相关文章

C# 获取汉字拼音首字母

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精   本节探讨C#获取汉字拼音首字母的方法: 代码类东西,直接上代码: /// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> /// <param name="CnStr">汉字字符串</param> /// <returns&

取汉字拼音首字母的方法

近期在做一个按拼音首字母排序的ListView须要取汉字拼音首字母,Deomo下载地址:http://download.csdn.net/detail/u014649598/8494777,做了例如以下的方法: 代码例如以下: package com.android.pinyin; import java.io.UnsupportedEncodingException; import android.app.Activity; import android.os.Bundle; import a

ios/android获取汉字拼音首字母

android/ios开发如何获取汉字拼音的首字母? 提供的一个比较好的方案,是使用 c语言编写的一个算法,可以 在ios和 android.下面提供一个可以使用的代码,并且附上使用方法: /* * pinyin.c * Chinese Pinyin First Letter * * Created by George on 4/21/10. * Copyright 2010 RED/SAFI. All rights reserved. * */ #define HANZI_START 1996

java获取汉字拼音首字母 --转载

在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫"李晓明"的人,可以输入'lxm'.写了一个工具类如下: import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @date 2004-02-19 注:只支持GB2312字符集中的汉字 */ public final class ChineseCharToEn { priv

如何获取汉字拼音首字母?一般用于通讯录

- (NSString *)firstCharactor:(NSString *)aString { //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO); //再转换为不带声调的拼音 CFStringT

工作问题:如何获取汉字拼音首字母?一般用于通讯录建设

/* 程序员的目标是 征服星辰的大海~ */ - (NSString *)firstCharactor:(NSString *)aString { //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);

C/C++ 获取汉字拼音首字母

1 #include <stdint.h> 2 #include <stdio.h> 3 #include <ctype.h> 4 #include <string.h> 5 6 bool between(uint32_t start,uint32_t end,uint32_t aim); 7 char get_first_letter(wchar_t wchar); 8 void get_first_letters(const char *szChines

【JAVA】获取汉字拼音首字母

最近在做通讯录的时候,需要把姓转换为拼音字母 1-9 a-z A-Z 转换为#:借张微信的图大家感受下 网上的代码很多,不外乎两种 1:pinyin4java包太大 2:大部分不支持生僻字,比如“栾.鑫” 认不出 本方案解决了这个问题,就很简单一个helper类,注意,只是拼音首字母哦!且编码格式为GBK! 代码很简单,就是在正常GBK检索不到的生僻字上,再加入一个字典,如果GBK检索不到,则在字典里找. package zhexian.app.smartcall.Utils; import j

php 获取汉字拼音首字母的函数

<?php header("content-type:text/html;charset=utf-8"); function getfirstchar($s0){ $firstchar_ord=ord(strtoupper($s0{0})); if (($firstchar_ord>=65 and $firstchar_ord<=91)or($firstchar_ord>=48 and $firstchar_ord<=57)) return $s0{0};