美文网首页
一个通过汉字获取首字母的算法

一个通过汉字获取首字母的算法

作者: marksdev | 来源:发表于2017-05-22 16:40 被阅读0次

    function utf8_to_gb2312($s)

    {

    returniconv('UTF-8','GB2312//IGNORE',$s);

    }

    functionto_first($s)

    {

    $ascii= ord($s[0]);

    if($ascii>0xE0) {

    $s=$this->utf8_to_gb2312($s[0] .$s[1] .$s[2]);

    }elseif($ascii<0x80) {

    if($ascii>=65&&$ascii<=90) {

    returnstrtolower($s[0]);

    }elseif($ascii>=97&&$ascii<=122) {

    return$s[0];

    }else{

    return false;

    }

    }

    if(strlen($s) <2) {

    return false;

    }

    $asc= ord($s[0]) *256+ ord($s[1]) -65536;

    if($asc>= -20319&&$asc<= -20284)return'a';

    if($asc>= -20283&&$asc<= -19776)return'b';

    if($asc>= -19775&&$asc<= -19219)return'c';

    if($asc>= -19218&&$asc<= -18711)return'd';

    if($asc>= -18710&&$asc<= -18527)return'e';

    if($asc>= -18526&&$asc<= -18240)return'f';

    if($asc>= -18239&&$asc<= -17923)return'g';

    if($asc>= -17922&&$asc<= -17418)return'h';

    if($asc>= -17417&&$asc<= -16475)return'j';

    if($asc>= -16474&&$asc<= -16213)return'k';

    if($asc>= -16212&&$asc<= -15641)return'l';

    if($asc>= -15640&&$asc<= -15166)return'm';

    if($asc>= -15165&&$asc<= -14923)return'n';

    if($asc>= -14922&&$asc<= -14915)return'o';

    if($asc>= -14914&&$asc<= -14631)return'p';

    if($asc>= -14630&&$asc<= -14150)return'q';

    if($asc>= -14149&&$asc<= -14091)return'r';

    if($asc>= -14090&&$asc<= -13319)return's';

    if($asc>= -13318&&$asc<= -12839)return't';

    if($asc>= -12838&&$asc<= -12557)return'w';

    if($asc>= -12556&&$asc<= -11848)return'x';

    if($asc>= -11847&&$asc<= -11056)return'y';

    if($asc>= -11055&&$asc<= -10247)return'z';

    return false;

    }

    相关文章

      网友评论

          本文标题:一个通过汉字获取首字母的算法

          本文链接:https://www.haomeiwen.com/subject/lmqixxtx.html