>php教程 >php手册 >php中获取中文首字母程序代码

php中获取中文首字母程序代码

WBOY
WBOY원래의
2016-05-25 16:39:471121검색

我们经常会看到一些网站按城市名来分或按字母来排名,下面我就来介绍这个东西如何实现的吧,我们分享一段利用php取得中文字符串中第一个汉字的字母,代码如下:

<?php 
	$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,0),         //U 
	    array(0,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>=&#39;B0&#39;){ //汉字的开始 
	        $t=getLetter(hexdec(bin2hex(substr($str,$i,2)))); 
	        printf("%c",$t==-1 ? &#39;*&#39; : $t ); 
	        //开源代码phprm.com 
	        $i+=2; 
	    } 
	    else{ 
	        printf("%s",substr($str,$i,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; 
	} 
	 

就是根据中文拼音来判断它的ascii码的编码来算出的.

本文地址:

转载随意,但请附上文章地址:-)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.