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

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

WBOY
WBOYOriginal
2016-05-25 16:39:471121Durchsuche

我们经常会看到一些网站按城市名来分或按字母来排名,下面我就来介绍这个东西如何实现的吧,我们分享一段利用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码的编码来算出的.

本文地址:

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn