$str="中国";
现我想输出 每个中文的第一个拼音字母 zg
大家帮我想想,怎么实现呀,

解决方案 »

  1.   

    下载DedeCms,解压后找到里面的pinyin.dat文件,里面有汉字和拼音对照。
      

  2.   

    这里放不下,只好放在这里了 http://blog.csdn.net/xuzuning/archive/2009/12/23/5060835.aspx
    修改一下就可以用
      

  3.   

    3楼的,你bolg中全是乱码,看不明白
    你发email给我吧
    [email protected] 多谢
      

  4.   


    function g ($num)

            global $d;
            
            if ($num > 0 && $num < 160) {
                    return chr ($num);
            }
            
            elseif ($num < -20319 || $num > -10247) {
                    return "";
            }
            else { 
                    for ($i = count ($d) - 1; $i >= 0; $i--) {
                            if ($d[$i][1] <= $num)
                                    break;
                    }
                    return $d[$i][0];
            }
    }function c ($str)
    {
            $ret="";
            
            for ($i=0; $i < strlen ($str); $i++) {
                    $p = ord (substr ($str, $i, 1));
                    
                    if ($p > 160) {
                            $q = ord (substr ($str, ++$i, 1));
                            $p = $p * 256 + $q - 65536;
                    }
                    
                    $ret .= g ($p);
            }
            return $ret;
    }
    放不下,一段段放,
      

  5.   

    $d = array(
            array("a",-20319), 
            array("ai",-20317), 
            array("an",-20304), 
            array("ang",-20295), 
            array("ao",-20292), 
            
            array("ba",-20283), 
            array("bai",-20265), 
            array("ban",-20257), 
            array("bang",-20242), 
            array("bao",-20230), 
            array("bei",-20051), 
            array("ben",-20036), 
            array("beng",-20032), 
            array("bi",-20026), 
            array("bian",-20002), 
            array("biao",-19990), 
            array("bie",-19986), 
            array("bin",-19982), 
            array("bing",-19976), 
            array("bo",-19805), 
            array("bu",-19784), 
            
            array("ca",-19775), 
            array("cai",-19774), 
            array("can",-19763), 
            array("cang",-19756), 
            array("cao",-19751), 
            array("ce",-19746), 
            array("ceng",-19741), 
            array("cha",-19739), 
            array("chai",-19728), 
            array("chan",-19725), 
            array("chang",-19715), 
            array("chao",-19540), 
            array("che",-19531), 
            array("chen",-19525), 
            array("cheng",-19515), 
            array("chi",-19500), 
            array("chong",-19484), 
            array("chou",-19479), 
            array("chu",-19467), 
            array("chuai",-19289), 
            array("chuan",-19288), 
            array("chuang",-19281), 
            array("chui",-19275), 
            array("chun",-19270), 
            array("chuo",-19263), 
            array("ci",-19261), 
            array("cong",-19249), 
            array("cou",-19243), 
            array("cu",-19242), 
            array("cuan",-19238), 
            array("cui",-19235), 
            array("cun",-19227), 
            array("cuo",-19224), 
            
            array("da",-19218), 
            array("dai",-19212), 
            array("dan",-19038), 
            array("dang",-19023), 
            array("dao",-19018), 
            array("de",-19006), 
            array("deng",-19003), 
            array("di",-18996), 
            array("dian",-18977), 
            array("diao",-18961), 
            array("die",-18952), 
            array("ding",-18783), 
            array("diu",-18774), 
            array("dong",-18773), 
            array("dou",-18763), 
            array("du",-18756), 
            array("duan",-18741), 
            array("dui",-18735), 
            array("dun",-18731), 
            array("duo",-18722), 
            
            array("e",-18710), 
            array("en",-18697), 
            array("er",-18696), 
            array("fa",-18526), 
            array("fan",-18518), 
            array("fang",-18501), 
            array("fei",-18490), 
            array("fen",-18478), 
            array("feng",-18463), 
            array("fo",-18448), 
            array("fou",-18447), 
            array("fu",-18446), 
            
            array("ga",-18239), 
            array("gai",-18237), 
            array("gan",-18231), 
            array("gang",-18220), 
            array("gao",-18211), 
            array("ge",-18201), 
            array("gei",-18184), 
            array("gen",-18183), 
            array("geng",-18181), 
            array("gong",-18012), 
            array("gou",-17997), 
            array("gu",-17988), 
            array("gua",-17970), 
            array("guai",-17964), 
            array("guan",-17961), 
            array("guang",-17950), 
            array("gui",-17947), 
            array("gun",-17931), 
            array("guo",-17928), 
            
            array("ha",-17922), 
            array("hai",-17759), 
            array("han",-17752), 
            array("hang",-17733), 
            array("hao",-17730), 
            array("he",-17721), 
            array("hei",-17703), 
            array("hen",-17701), 
            array("heng",-17697), 
            array("hong",-17692), 
            array("hou",-17683), 
            array("hu",-17676), 
            array("hua",-17496), 
            array("huai",-17487), 
            array("huan",-17482), 
            array("huang",-17468), 
            array("hui",-17454), 
            array("hun",-17433), 
            array("huo",-17427), 
            
            array("ji",-17417), 
            array("jia",-17202), 
            array("jian",-17185), 
            array("jiang",-16983), 
            array("jiao",-16970), 
            array("jie",-16942), 
            array("jin",-16915), 
            array("jing",-16733), 
            array("jiong",-16708), 
            array("jiu",-16706), 
            array("ju",-16689), 
            array("juan",-16664), 
            array("jue",-16657), 
            array("jun",-16647), 
            
            array("ka",-16474), 
            array("kai",-16470), 
            array("kan",-16465), 
            array("kang",-16459), 
            array("kao",-16452), 
            array("ke",-16448), 
            array("ken",-16433), 
            array("keng",-16429), 
            array("kong",-16427), 
            array("kou",-16423), 
            array("ku",-16419), 
            array("kua",-16412), 
            array("kuai",-16407), 
            array("kuan",-16403), 
            array("kuang",-16401), 
            array("kui",-16393), 
            array("kun",-16220), 
            array("kuo",-16216), 
            
            array("la",-16212), 
            array("lai",-16205), 
            array("lan",-16202), 
            array("lang",-16187), 
            array("lao",-16180), 
            array("le",-16171), 
            array("lei",-16169), 
            array("leng",-16158), 
            array("li",-16155), 
            array("lia",-15959), 
            array("lian",-15958), 
            array("liang",-15944), 
            array("liao",-15933), 
            array("lie",-15920), 
            array("lin",-15915), 
            array("ling",-15903), 
            array("liu",-15889), 
            array("long",-15878), 
            array("lou",-15707), 
            array("lu",-15701), 
            array("lv",-15681), 
            array("luan",-15667), 
            array("lue",-15661), 
            array("lun",-15659), 
            array("luo",-15652), 
            
            array("ma",-15640), 
            array("mai",-15631), 
            array("man",-15625), 
            array("mang",-15454), 
            array("mao",-15448), 
            array("me",-15436), 
            array("mei",-15435), 
            array("men",-15419), 
            array("meng",-15416), 
            array("mi",-15408), 
            array("mian",-15394), 
            array("miao",-15385), 
            array("mie",-15377), 
            array("min",-15375), 
            array("ming",-15369), 
            array("miu",-15363), 
            array("mo",-15362), 
            array("mou",-15183), 
            array("mu",-15180), 
            
            array("na",-15165), 
            array("nai",-15158), 
            array("nan",-15153), 
            array("nang",-15150), 
            array("nao",-15149), 
            array("ne",-15144), 
            array("nei",-15143), 
            array("nen",-15141), 
            array("neng",-15140), 
            array("ni",-15139), 
            array("nian",-15128), 
            array("niang",-15121), 
            array("niao",-15119), 
            array("nie",-15117), 
            array("nin",-15110), 
            array("ning",-15109), 
            array("niu",-14941), 
            array("nong",-14937), 
            array("nu",-14933), 
            array("nv",-14930), 
            array("nuan",-14929), 
            array("nue",-14928), 
            array("nuo",-14926), 
            
            array("o",-14922), 
            array("ou",-14921), 
            
            array("pa",-14914), 
            array("pai",-14908), 
            array("pan",-14902), 
            array("pang",-14894), 
            array("pao",-14889), 
            array("pei",-14882), 
            array("pen",-14873), 
            array("peng",-14871), 
            array("pi",-14857), 
            array("pian",-14678), 
            array("piao",-14674), 
            array("pie",-14670), 
            array("pin",-14668), 
            array("ping",-14663), 
            array("po",-14654), 
            array("pu",-14645), 
      

  6.   

    array("qi",-14630), 
            array("qia",-14594), 
            array("qian",-14429), 
            array("qiang",-14407), 
            array("qiao",-14399), 
            array("qie",-14384), 
            array("qin",-14379), 
            array("qing",-14368), 
            array("qiong",-14355), 
            array("qiu",-14353), 
            array("qu",-14345), 
            array("quan",-14170), 
            array("que",-14159), 
            array("qun",-14151), 
            
            array("ran",-14149), 
            array("rang",-14145), 
            array("rao",-14140), 
            array("re",-14137), 
            array("ren",-14135), 
            array("reng",-14125), 
            array("ri",-14123), 
            array("rong",-14122), 
            array("rou",-14112), 
            array("ru",-14109), 
            array("ruan",-14099), 
            array("rui",-14097), 
            array("run",-14094), 
            array("ruo",-14092), 
            
            array("sa",-14090), 
            array("sai",-14087), 
            array("san",-14083), 
            array("sang",-13917), 
            array("sao",-13914), 
            array("se",-13910), 
            array("sen",-13907), 
            array("seng",-13906), 
            array("sha",-13905), 
            array("shai",-13896), 
            array("shan",-13894), 
            array("shang",-13878), 
            array("shao",-13870), 
            array("she",-13859), 
            array("shen",-13847), 
            array("sheng",-13831), 
            array("shi",-13658), 
            array("shou",-13611), 
            array("shu",-13601), 
            array("shua",-13406), 
            array("shuai",-13404), 
            array("shuan",-13400), 
            array("shuang",-13398), 
            array("shui",-13395), 
            array("shun",-13391), 
            array("shuo",-13387), 
            array("si",-13383), 
            array("song",-13367), 
            array("sou",-13359), 
            array("su",-13356), 
            array("suan",-13343), 
            array("sui",-13340), 
            array("sun",-13329), 
            array("suo",-13326), 
            
            array("ta",-13318), 
            array("tai",-13147), 
            array("tan",-13138), 
            array("tang",-13120), 
            array("tao",-13107), 
            array("te",-13096), 
            array("teng",-13095), 
            array("ti",-13091), 
            array("tian",-13076), 
            array("tiao",-13068), 
            array("tie",-13063), 
            array("ting",-13060), 
            array("tong",-12888), 
            array("tou",-12875), 
            array("tu",-12871), 
            array("tuan",-12860), 
            array("tui",-12858), 
            array("tun",-12852), 
            array("tuo",-12849), 
            
            array("wa",-12838), 
            array("wai",-12831), 
            array("wan",-12829), 
            array("wang",-12812), 
            array("wei",-12802), 
            array("wen",-12607), 
            array("weng",-12597), 
            array("wo",-12594), 
            array("wu",-12585), 
            
            array("xi",-12556), 
            array("xia",-12359), 
            array("xian",-12346), 
            array("xiang",-12320), 
            array("xiao",-12300), 
            array("xie",-12120), 
            array("xin",-12099), 
            array("xing",-12089), 
            array("xiong",-12074), 
            array("xiu",-12067), 
            array("xu",-12058), 
            array("xuan",-12039), 
            array("xue",-11867), 
            array("xun",-11861), 
            
            array("ya",-11847), 
            array("yan",-11831), 
            array("yang",-11798), 
            array("yao",-11781), 
            array("ye",-11604), 
            array("yi",-11589), 
            array("yin",-11536), 
            array("ying",-11358), 
            array("yo",-11340), 
            array("yong",-11339), 
            array("you",-11324), 
            array("yu",-11303), 
            array("yuan",-11097), 
            array("yue",-11077), 
            array("yun",-11067), 
            
            array("za",-11055), 
            array("zai",-11052), 
            array("zan",-11045), 
            array("zang",-11041), 
            array("zao",-11038), 
            array("ze",-11024), 
            array("zei",-11020), 
            array("zen",-11019), 
            array("zeng",-11018), 
            array("zha",-11014), 
            array("zhai",-10838), 
            array("zhan",-10832), 
            array("zhang",-10815), 
            array("zhao",-10800), 
            array("zhe",-10790), 
            array("zhen",-10780), 
            array("zheng",-10764), 
            array("zhi",-10587), 
            array("zhong",-10544), 
            array("zhou",-10533), 
            array("zhu",-10519), 
            array("zhua",-10331), 
            array("zhuai",-10329), 
            array("zhuan",-10328), 
            array("zhuang",-10322), 
            array("zhui",-10315), 
            array("zhun",-10309), 
            array("zhuo",-10307), 
            array("zi",-10296), 
            array("zong",-10281), 
            array("zou",-10274), 
            array("zu",-10270), 
            array("zuan",-10262), 
            array("zui",-10260), 
            array("zun",-10256), 
            array("zuo",-10254) 
    );好了,把这三个放一块就行了
      

  7.   

    支持12楼,
    6 楼的弄的全是拼音呀,现要实现:
    $str="中国"; 
    现要输出 每个中文的第一个拼音字母 zg 
      

  8.   

    zzxoyo 给出的代码改自asp
    如果没有问题的话还是可以使用的。首字母不就是拼音的第一个字符吗?截取一下不就得了遗憾的是,这个算法只能用于gb2312字符集中的一级字(按拼音排列),其二级字是按部首排列的
    而gbk字符集是在融合gb2312、big5基础上扩充而成,融合与扩充以填空方式完成,不呈现任何规律
      

  9.   

    $str ="中国";
    用6楼的代码,会输出 zhongguo
    可怎么把中国分成 中 国 呢,
    也就是分成zhong guo 
    这样我才会截第一个字母呀,高手再贴点可运行的代码吧,
      

  10.   


    <?
    $str="中国"; 
    $arr=str_split($str,2);
    var_dump($arr);
    ?>
      

  11.   

    17楼的可能还没弄清意思哦,
    那$str="祝中国人民2010万岁";
    呢,怎么把每个字的 第一个拼音输出呢,
      

  12.   

    你把这个$str拆成一个一个字读,再重新组合起来不就行了
      

  13.   

    就他的代码改
    function c ($str)
    {
            $ret="";
            
            for ($i=0; $i < strlen ($str); $i++) {
                    $p = ord (substr ($str, $i, 1));
                    
                    if ($p > 160) {
                            $q = ord (substr ($str, ++$i, 1));
                            $p = $p * 256 + $q - 65536;
                    }
                    
                    $ret .= substr(g($p), 1, 1);
            }
            return $ret;
    }
      

  14.   

    多谢 21楼
    下面的函数可以了
    function pys ($str) 

            $ret=""; 
            
            for ($i=0; $i < strlen ($str); $i++) { 
                    $p = ord (substr ($str, $i, 1)); 
                    
                    if ($p > 160) { 
                            $q = ord (substr ($str, ++$i, 1)); 
                            $p = $p * 256 + $q - 65536; 
                    } 
                    
                    $ret .= substr(g($p), 0, 1); 
            } 
            return $ret; 
      

  15.   

    <?php
    $str="中国"; 
    $arr=str_split($str,3);
    var_dump($arr);array(2) { [0]=>  string(3) "中" [1]=>  string(3) "国" }