Heim > php教程 > php手册 > Hauptteil

PHP获得中文汉字拼音首字母例子

WBOY
Freigeben: 2016-05-25 16:43:57
Original
1456 Leute haben es durchsucht

获取给出汉字中拼音的第一个汉字字母我们可以利用汉字的一个编码来进行判断,下面我们来给大家介绍一个例子,非常的简单好用。

先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编码:

<?php
function getfirstchar($s0) {
    $fchar = ord($s0{0});
    if ($fchar >= ord("A") and $fchar <= ord("z")) return strtoupper($s0{0});
    $s1 = iconv("UTF-8", "gb2312", $s0);
    $s2 = iconv("gb2312", "UTF-8", $s1);
    if ($s2 == $s0) {
        $s = $s1;
    } else {
        $s = $s0;
    }
    $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
    if ($asc >= - 20319 and $asc <= - 20284) return "A";
    if ($asc >= - 20283 and $asc <= - 19776) return "B";
    if ($asc >= - 19775 and $asc <= - 19219) return "C";
    if ($asc >= - 19218 and $asc <= - 18711) return "D";
    if ($asc >= - 18710 and $asc <= - 18527) return "E";
    if ($asc >= - 18526 and $asc <= - 18240) return "F";
    if ($asc >= - 18239 and $asc <= - 17923) return "G";
    if ($asc >= - 17922 and $asc <= - 17418) return "H";
    if ($asc >= - 17417 and $asc <= - 16475) return "J";
    if ($asc >= - 16474 and $asc <= - 16213) return "K";
    if ($asc >= - 16212 and $asc <= - 15641) return "L";
    if ($asc >= - 15640 and $asc <= - 15166) return "M";
    if ($asc >= - 15165 and $asc <= - 14923) return "N";
    if ($asc >= - 14922 and $asc <= - 14915) return "O";
    if ($asc >= - 14914 and $asc <= - 14631) return "P";
    if ($asc >= - 14630 and $asc <= - 14150) return "Q";
    if ($asc >= - 14149 and $asc <= - 14091) return "R";
    if ($asc >= - 14090 and $asc <= - 13319) return "S";
    if ($asc >= - 13318 and $asc <= - 12839) return "T";
    if ($asc >= - 12838 and $asc <= - 12557) return "W";
    if ($asc >= - 12556 and $asc <= - 11848) return "X";
    if ($asc >= - 11847 and $asc <= - 11056) return "Y";
    if ($asc >= - 11055 and $asc <= - 10247) return "Z";
    return null;
}
?>
Nach dem Login kopieren

以上函数返回单个汉字的拼音首字母。

当需要处理中文字符串时,只需要重新写一个函数,用来取得一串汉字的拼音首字母。

<?php
function pinyin1($zh) {
    $ret = "";
    $s1 = iconv("UTF-8", "gb2312", $zh);
    $s2 = iconv("gb2312", "UTF-8", $s1);
    if ($s2 == $zh) {
        $zh = $s1;
    }
    for ($i = 0; $i < strlen($zh); $i++) {
        $s1 = substr($zh, $i, 1);
        $p = ord($s1);
        if ($p > 160) {
            $s2 = substr($zh, $i++, 2);
            $ret.= getfirstchar($s2);
        } else {
            $ret.= $s1;
        }
    }
    return $ret;
}
?>
Nach dem Login kopieren

上面这个函数就是获取汉字拼音首字母的函数,使用示例:

echo pinyin1('这是中文字符串');

结果输出:ZSZWZFC

补充在 getfirstchar函数中我们有两种写法

第一种是我们上面用到的例子

<?php
function getfirstchar($s0) {
    $fchar = ord($s0{0});
    if ($fchar >= ord("A") and $fchar <= ord("z")) return strtoupper($s0{0});
?>
//而另一种是我们使用的数字方法了,也比较简单了。
<?php
    function getFirstChar($string) {
        $firstCharOrd = ord(strtoupper($string{0}));
        if (($firstCharOrd >= 65 && $firstCharOrd <= 91) || ($firstCharOrd >= 48 && $firstCharOrd <= 57)) return strtoupper($string{0});
}
?>
Nach dem Login kopieren


永久链接:

转载随意!带上文章地址吧。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage