PHP将中文翻译成拼音

从i18n-ascii.txt文件中读取数据,进行翻译,代码如下:

    /**
     *  Generate project alias by project name
     */
    private function _generateAlias($name, $projectId) {
        $file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'i18n-ascii.txt';
        $separator = '-';

        // Read translation file
        if (file_exists($file)) {
            $translations = parse_ini_file($file);
        }

        // Translate name to ASCII
        if (!empty($translations)) {
            $name = strtr($name, $translations);
        }

        // Replace white space with the separator.
        $name = preg_replace('/\s+/', $separator, $name);

        // Turn to lower case
        $name = strtolower($name);

        // Check whether the name is exist
        if ($projectId) {
            $sql = 'SELECT url_alias FROM project WHERE id <> \'' . $projectId . '\' AND url_alias LIKE \'' . $name . '%\'';
        } else {
            $sql = 'SELECT url_alias FROM project WHERE url_alias LIKE \'' . $name . '%\'';
        }
        $aliases = Yii::app()->db->createCommand($sql)->queryAll();

        // If the alias is exist
        if (count($aliases) > 0) {
            $start = strlen($name);
            $subfixes = array();
            foreach ($aliases as $alias) {
                $subfix = $alias['url_alias'];
                if ($subfix == $name) {
                    $subfixes[] = '0';
                } else if (substr($subfix, $start, 1) == $separator) {
                    $subfix = substr($subfix, $start + 1);
                    if (is_numeric($subfix)) {
                        $subfixes[] = $subfix;
                    }
                }
            }
            if (count($subfixes) > 0) {
                $subfix = max($subfixes) + 1;
                $name = $name . $separator . $subfix;
            }
        }

        return $name;
    }

文件下载路径为:http://download.csdn.net/download/doushen1/7060091

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值