从dedecms里面分离出来的php汉字转拼音函数!

function pinyin($str)
{
    $pinyins = Array();
    $restr = '';
    $str = trim($str);
    $slen = strlen($str);
    if($slen<2)
    {
        return $str;
    }
    if(count($pinyins)==0)
    {
        $fp = fopen('./data/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]))
            {
                $restr .= $pinyins[$c];
            }else
            {
                $restr .= "_";
            }
        }else if( eregi("[a-z0-9]",$str[$i]) )
        {
            $restr .= $str[$i];
        }
        else
        {
            $restr .= "_";
        }
    }
    return $restr;
}



上一篇: 不注重细节往往是失败的根本原因
下一篇: MySQL查询及删除表内重复记录
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
评论: 0 | 引用: 0 | 查看次数: 4660
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑