本文实例讲述了PHP自定义函数获取汉字首字母的方法.分享给大家供大家参考,具体如下:
首字母很重要,可以进行排序使用.
城市列表等等.
php
/*
*
Created
on
*/
function
getFirstCharter($str)
{
if
(empty($str))
return
'';
}
$fchar
=
ord($str{0});
($fchar
ord('A')
ord('z'))
strtoupper($str{0});
$s1
$str);
$s1);
$s
==
$str
:
$str;
$asc
ord($s{0})
◆
ord($s{1})
-
($asc
'A';
'B';
'C';
'D';
'E';
'F';
'G';
'H';
'J';
'K';
'L';
'M';
'N';
'O';
'P';
'Q';
'R';
'S';
'T';
'W';
'X';
'Y';
'Z';
null;
$firstChar
getFirstCharter('脚本之家');
print_r($firstChar);//输出:J
更多关于PHP相关内容感兴趣的读者可查看本站专题:<
希望本文所述对大家PHP程序设计有所帮助.
function?($str){
return?null;
};
这是一个传入汉字,通过汉字的ASCII码来判断汉字的首字母的方法.已经调试,可以直接使用.望测试.
function?getfirstchar($s0){?
$c=ereg('[a-zA-Z]',?strtoupper(substr(?$s0,?0,?1?)));
if($c){
return?strtoupper(substr(?$s0,?0,?1?))?;
}else{
if($fchar=ord("a")?and?$fchar=ord("Z")?)return?strtoupper($s0{0});
if(is_numeric(substr(?$s0,?0,?1?))){
$s0?=ToChinaseNum?(substr(?$s0,?0,?1?));
$s=?$s0;
function?ToChinaseNum($num)
$char?=?array("零","一","二","三","四","五","六","七","八","九");
$dw?=?array("","十","百","千","万","亿","兆");
$retval?=?"";
$proZero?=?false;
for($i?=?0;$i?strlen($num);$i◆◆)
if($i?0)?$temp?=?(int)(($num?%?pow?(10,$i◆1))?/?pow?(10,$i));
else?$temp?=?(int)($num?%?pow?(10,1));
if($proZero?==?true?$temp?==?0)?continue;
if($temp?==?0)?$proZero?=?true;
else?$proZero?=?false;
if($proZero)
if($retval?==?"")?continue;
$retval?=?$char[$temp].$retval;
else?$retval?=?$char[$temp].$dw[$i].$retval;
if($retval?==?"一十")?$retval?=?"十";
return?$retval;
//汉字转拼音(生僻字不支持)
function(){
/**
*?以下是中文转拼音
*?@param?$s
*?@param?bool?$isfirst
*?@return?string
public?static?function?to($s,?$isfirst?=?false)?{
$res?=?'';
$len?=?strlen($s);
$pinyin_arr?=?self::get_pinyin_array();
for($i=0;?$i$len;?$i◆◆)?{
$ascii?=?ord($s{$i});
$res?.=?strtolower($s{$i});?//?A-Z
$res?.=?'_';
foreach($pinyin_arr?as?$py=$asc)?{
if($asc?=?$ascii)?{
$res?.=?$isfirst?$py{0}?:?$py;
break;
return?$res;
public?static?function?to_first($s)?{
$ascii?=?ord($s{0});
if($ascii?0xE0)?{
return?strtolower($s{0});
return?$s{0};
return?false;
public?static?function?get_pinyin_array()?{
static?$py_arr;
if(isset($py_arr))?return?$py_arr;
$k?=?'a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong|cou|cu|cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|diao|die|ding|diu|dong|dou|du|duan|dui|dun|duo|e|en|er|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei|gen|geng|gong|gou|gu|gua|guai|guan|guang|gui|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua|huai|huan|huang|hui|hun|huo|ji|jia|jian|jiang|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke|ken|keng|kong|kou|ku|kua|kuai|kuan|kuang|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng|li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue|lun|luo|ma|mai|man|mang|mao|me|mei|men|meng|mi|mian|miao|mie|min|ming|miu|mo|mou|mu|na|nai|nan|nang|nao|ne|nei|nen|neng|ni|nian|niang|niao|nie|nin|ning|niu|nong|nu|nv|nuan|nue|nuo|o|ou|pa|pai|pan|pang|pao|pei|pen|peng|pi|pian|piao|pie|pin|ping|po|pu|qi|qia|qian|qiang|qiao|qie|qin|qing|qiong|qiu|qu|quan|que|qun|ran|rang|rao|re|ren|reng|ri|rong|rou|ru|ruan|rui|run|ruo|sa|sai|san|sang|sao|se|sen|seng|sha|shai|shan|shang|shao|she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou|su|suan|sui|sun|suo|ta|tai|tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|zhou|zhu|zhua|zhuai|zhuan|zhuang|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo';
$key?=?explode('|',?$k);
$val?=?explode('|',?$v);
$py_arr?=?array_combine($key,?$val);
arsort($py_arr);
return?$py_arr;
以上函数返回单个汉字的拼音首字母,当需要处理中文字符串时,只需要重新写一个函数,用来取得一串汉字的拼音首字母.