php获取汉字拼音首字母

<FORM METHOD=POST ACTION="#">  
    <INPUT TYPE="text" NAME="name">  
    <INPUT TYPE="submit" value="query" name="sub">  
</FORM>  
 
 
<?php  
 
function getinitial($str)  
{  
    $asc=ord(substr($str,0,1));  //ord()获取ASCII  
    if ($asc<160) //非中文  
    {  
        if ($asc>=48 && $asc<=57){  
            return '1';  //数字  
        }elseif ($asc>=65 && $asc<=90){  
            return chr($asc);   // A--Z chr将ASCII转换为字符  
        }elseif ($asc>=97 && $asc<=122){  
            return chr($asc-32); // a--z  
        }else{  
            return '~'; //其他  
        }  
    }  
    else   //中文  
    {  
        $asc=$asc*1000+ord(substr($str,1,1));  
        //获取拼音首字母A--Z  
        if ($asc>=176161 && $asc<176197){  
            return 'A';  
        }elseif ($asc>=176197 && $asc<178193){  
            return 'B';  
        }elseif ($asc>=178193 && $asc<180238){  
            return 'C';  
        }elseif ($asc>=180238 && $asc<182234){  
            return 'D';  
        }elseif ($asc>=182234 && $asc<183162){  
            return 'E';  
        }elseif ($asc>=183162 && $asc<184193){  
            return 'F';  
        }elseif ($asc>=184193 && $asc<185254){  
            return 'G';  
        }elseif ($asc>=185254 && $asc<187247){  
            return 'H';  
        }elseif ($asc>=187247 && $asc<191166){  
            return 'J';  
        }elseif ($asc>=191166 && $asc<192172){  
            return 'K';  
        }elseif ($asc>=192172 && $asc<194232){  
            return 'L';  
        }elseif ($asc>=194232 && $asc<196195){  
            return 'M';  
        }elseif ($asc>=196195 && $asc<197182){  
            return 'N';  
        }elseif ($asc>=197182 && $asc<197190){  
            return 'O';  
        }elseif ($asc>=197190 && $asc<198218){  
            return 'P';  
        }elseif ($asc>=198218 && $asc<200187){  
            return 'Q';  
        }elseif ($asc>=200187 && $asc<200246){  
            return 'R';  
        }elseif ($asc>=200246 && $asc<203250){  
            return 'S';  
        }elseif ($asc>=203250 && $asc<205218){  
            return 'T';  
        }elseif ($asc>=205218 && $asc<206244){  
            return 'W';  
        }elseif ($asc>=206244 && $asc<209185){  
            return 'X';  
        }elseif ($asc>=209185 && $asc<212209){  
            return 'Y';  
        }elseif ($asc>=212209){  
            return 'Z';  
        }else{  
            return '~';  
        }  
    }  
}  
 
//echo getinitial("好");  
//echo "<hr size=1>";  
//echo ord(substr("好",0,1));  
//echo substr("颜杰",2,2);  
 

if($_POST[name]){
    $name = $_POST[name];
    //echo strlen($name);
    for($i=0;$i<strlen($name);$i=$i+2){
        $name_words .= getinitial(substr($name,$i,2));
    }
    echo $name_words;
}
 
 
 
 
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值