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

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

作者: 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