php中 提取中文字符首个拼音字母

最近在做php中,关于提取中文字符的首个拼音字母。
网上朋友们提供的代码,原理都是根据中文字符的ascii字符来实现的;
但是里面,貌似缺少了对于字符‘H’、‘U’、‘V’的处理;

图中的代码是什么意思呢? 可以给我解释下么?

$fchar = ord($s0{0}); //获取字符串的第一个字节

//判断是不是英文字符,如果是则直接返回该字母大写
if ($fchar >= ord(“A”) and $fchar <= ord(“z”))return strtoupper($s0{0});

//以下代码用字符编码转换函数,通过两种字符集编码转换的对比,判断字符串是哪种字符集
//最终取字符串为GB字符集
$s1 = @iconv(“UTF-8″, “GBK”, $s0);
$s2 = @iconv(“GBK”, “UTF-8″, $s1);
if ($s2 == $s0) {
$s = $s1;
} else {
$s = $s0;
}

//计算给出的字符串的前两个字节内码,然后再根据结果判断在GB字符集中的位置,从而根据位置与拼音的关系,最终得出拼音字母
$asc = ord($s{0}) * 256 + ord($s{1}) – 65536;

‘U’、‘V’对中文无效,以下是对 H 拼音的计算:

if($asc>=-17922 and $asc<=-17418)return "H";
温馨提示:答案为网友推荐,仅供参考
相似回答