zoukankan      html  css  js  c++  java
  • PHP将汉字转为拼音

    没什么难度,最大的难点应该是需要有一个汉字-拼音库。

    <?php
    function spell($str, $ishead=0){
        $restr = '';
        $str = trim($str);
        $slen = strlen($str);
        if($slen < 2){//若长度小于2则不是汉字
            return $str;
        }
        /*
        .dat文件内格式为
        啊`a
        阿`a
        埃`ai
        */
        $fp = fopen('pinyin.dat', 'r');
        while(!feof($fp)){
            $line = trim(fgets($fp));
            //将汉字作为下标 拼音为值
            $pinyins[$line[0].$line[1]] = substr($line, 3, strlen($line)-3);
        }
        fclose($fp);
        for($i=0; $i<$slen; $i++){
            if(ord($str[$i])>0x80){
                $c = $str[$i].$str[$i+1];
                $i++;
                if(isset($pinyins[$c])){
                    if($ishead==0) $restr .= $pinyins[$c];
                    else $restr .= $pinyins[$c][0];
                }else{
                    $restr .= "_";
                }
            }else if( preg_match("/[a-z0-9]/i", $str[$i]) ){
                $restr .= $str[$i];
            }else{
               $restr .= "_";
            }
        }
        return $restr;
    }
    ?>

    附汉字-拼音库下载 

    欢迎各位指点!
  • 相关阅读:
    hdu 5146 Sequence
    hdu 1232 畅通工程
    hdu 1213 How Many Tables
    hdu 2822 Dogs
    hdu 1242 Rescue
    hdu 5101 Select
    hdu 1873 看病要排队
    hdu 5112 A Curious Matt
    hdu 5154 Harry and Magical Computer
    hdu 1548 A strange lift
  • 原文地址:https://www.cnblogs.com/thors/p/9494388.html
Copyright © 2011-2022 走看看