php 取得字符串的首字母(适用于中文字符串)

前端之家收集整理的这篇文章主要介绍了php 取得字符串的首字母(适用于中文字符串)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP取得字符串的首字母(适用于中文字符串)感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

/**
 * PHP取得字符串的首字母(适用于中文字符串)
 *
 * @param 
 * @arrange 网: www.www.jb51.cc
 **/
$limit = array( //gb2312 拼音排序
	array(45217,45252),//A
	array(45253,45760),//B
	array(45761,46317),//C
	array(46318,46825),//D
	array(46826,47009),//E
	array(47010,47296),//F
	array(47297,47613),//G
	array(47614,48118),//H
	array(0,0),//I
	array(48119,49061),//J
	array(49062,49323),//K
	array(49324,49895),//L
	array(49896,50370),//M
	array(50371,50613),//N
	array(50614,50621),//O
	array(50622,50905),//P
	array(50906,51386),//Q
	array(51387,51445),//R
	array(51446,52217),//S
	array(52218,52697),//T
	array(0,//U
	array(0,//V
	array(52698,52979),//W
	array(52980,53688),//X
	array(53689,54480),//Y
	array(54481,55289),//Z
);
$str="A:这是一个测试程序1";
$str= iconv("UTF-8","gb2312",$str);
echo $str."</br>";
$i=0;
while($i<strlen($str) ) {
	$tmp=bin2hex(substr($str,$i,1));
	if($tmp>='B0'){ //汉字的开始
		$t=getLetter(hexdec(bin2hex(substr($str,2))));
		printf("%c",$t==-1 ? '*' : $t );
		$i+=2;
	}
	else{
		printf("%s",substr($str,1));
		$i++;
	}
}
function getLetter($num){
	global $limit;
	$char_index=65;
	foreach($limit as $k=>$v){
		if($num>=$v[0] && $num<=$v[1]){
			$char_index+=$k;
			return $char_index;
		}
	}
	return -1;
}
/***   来自编程之家 jb51.cc(jb51.cc)   ***/
原文链接:https://www.f2er.com/php/528581.html

猜你在找的PHP相关文章