找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 查看内容

php实现简体转繁体

作者:模板之家 2021-2-8 15:19 83人关注

php实现简体转繁体的方法:首先打开相应的PHP示例文件;然后通过php网站中文简体繁体转换类“?php class ZhConvert{...}”来实现简体转繁体即可。

php实现简体转繁体的方法:首先打开相应的PHP示例文件;然后通过php网站中文简体繁体转换类“<?php class ZhConvert{...}”来实现简体转繁体即可。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑。

php 网站中文简体繁体转换类

<?php

/*
 * define zh convert functions
 * 2017-4-28 use str_replace for speed
 * zh_hans_to_zh_hant():简体到繁体转换
 * zh_hant_to_zh_hans():繁体到简体转换
 * zh():自动判断默认语言和当前语言,根据需要转换

 */
class ZhConvert{

    /* *
     * 中文简繁体切换
     * zh-hans为简体中文 zh-hant为繁体中文
     * $input 需要转换的文本
     * $change_language_code 转换语言代码
     * $current_language_code 当前语言代码
     * */
    public static function zh($input,$change_language_code = 'zh-hant',$current_language_code = 'zh-hans') {
        if ($change_language_code == $current_language_code) {//转换语言与当前语言相同
            $output = $input;//不转换
        } elseif ($change_language_code == 'zh-hans' && $current_language_code == 'zh-hant') {//转换简体、当前繁体
            $output = self::zh_hant_to_zh_hans($input);//繁体转简体
        } elseif ($change_language_code == 'zh-hant' && $current_language_code == 'zh-hans') {//转换繁体、当前简体
            $output = self::zh_hans_to_zh_hant($input);//简体转繁体
        } else {
            $output = $input;//不转换
        }
        return $output;
    }


    /* *
     * 中文简繁体自动切换
     * zh-hans为简体中文 zh-hant为繁体中文
     * $input 需要转换的文本
     * $current_language_code 当前语言代码
     * */
    public static function zh_auto($input,$current_language_code = 'zh-hans') {
        if ($current_language_code == 'zh-hant') {//转换简体、当前繁体
            $output = self::zh_hant_to_zh_hans($input);//繁体转简体
        } elseif ($current_language_code == 'zh-hans') {//转换繁体、当前简体
            $output = self::zh_hans_to_zh_hant($input);//简体转繁体
        } else {
            $output = $input;//不转换
        }
        return $output;
    }


    /* *
     * 老方法
     * */
    public static function zh_hans_to_zh_hant_old($input) {//简体到繁体的函数,$input是需要转的字符串,可以包含数字、字母、简体繁体汉字等
        $array = self::get_array_zh_hans_to_zh_hant();//简体、繁体对照表
        if(trim($input)==''){ //输入为空则返回空字符串
            return '';
        }
        $output = '';
        $count = mb_strlen($input,'utf-8'); //按照utf-8字符计数
        for($i = 0; $i <= $count; $i++){ //逐个字符处理
            $jchar = mb_substr($input,$i,1,'utf-8'); //分离出一个需要处理的字符
            $fchar = isset($array[$jchar])?$array[$jchar]:$jchar; //如果在上面的对照数组中就转换,否则原样不变
            $output .= $fchar; //逐个字符添加到输出
        }
        return $output;//返回输出
    }


    /* *
     * 新方法
     * 改用str_replace函数来替代老方法的循环方式
     * */
    public static function zh_hans_to_zh_hant($input) {//简体到繁体的函数,$input是需要转的字符串,可以包含数字、字母、简体繁体汉字等
        $array = self::get_array_zh_hans_to_zh_hant();//简体、繁体对照表
        $array_zh_hans = array_keys($array);
        $array_zh_hant = array_values($array);
        if(trim($input)==''){ //输入为空则返回空字符串
            return '';
        }
        $output = str_replace($array_zh_hans, $array_zh_hant, $input);
        return $output;//返回输出
    }


    /* *
     * 老方法
     * */
    public static function zh_hant_to_zh_hans_old($input) {//繁体到简体的函数,$input是需要转的字符串,可以包含数字、字母、简体繁体汉字等
        $array = self::get_array_zh_hans_to_zh_hant();//简体、繁体对照表
        $array = array_flip($array); //如果需要繁体到简体的转换,只需要用一个array_flip函数来对调key和value
        if(trim($input)==''){ //输入为空则返回空字符串
            return '';
        }
        $output = '';
        $count = mb_strlen($input,'utf-8'); //按照utf-8字符计数
        for($i = 0; $i <= $count; $i++){ //逐个字符处理
            $fchar = mb_substr($input,$i,1,'utf-8'); //分离出一个需要处理的字符
            $jchar = isset($array[$fchar])?$array[$fchar]:$fchar; //如果在上面的对照数组中就转换,否则原样不变
            $output .= $jchar; //逐个字符添加到输出
        }
        return $output;//返回输出
    }


    /* *
     * 新方法
     * 改用str_replace函数来替代老方法的循环方式
     * */
    public static function zh_hant_to_zh_hans($input) {//繁体到简体的函数,$input是需要转的字符串,可以包含数字、字母、简体繁体汉字等
        $array = self::get_array_zh_hant_to_zh_hans();//简体、繁体对照表
        $array_zh_hant = array_keys($array);
        $array_zh_hans = array_values($array);
        if(trim($input)==''){ //输入为空则返回空字符串
            return '';
        }
        $output = str_replace($array_zh_hant, $array_zh_hans, $input);
        return $output;//返回输出
    }


    //1275个简体、繁体对照表做成数组反转+xx个繁体到简体的数组元素
    private static function get_array_zh_hant_to_zh_hans() {
        $array = self::get_array_zh_hans_to_zh_hant();//1275个简体、繁体对照表做成数组
        $array = array_flip($array);//交换数组中的键和值
        $array['週'] = '周';
        $array['髮'] = '发';
        $array['噁'] = '恶';
        $array['麵'] = '面';
        $array['乾'] = '干';
        $array['佈'] = '布';
        $array['迴'] = '回';
        $array['徵'] = '征';
        $array['穫'] = '获';
        $array['穀'] = '谷';
        $array['鬍'] = '胡';
        $array['鬚'] = '须';
        $array['閒'] = '闲';
        $array['鬆'] = '松';
        $array['姦'] = '奸';
        $array['鬱'] = '郁';
        $array['製'] = '制';
        $array['馀'] = '余';
        $array['嚮'] = '向';
        $array['繫'] = '系';
        $array['罎'] = '坛';
        $array['檯'] = '台';
        $array['颱'] = '台';
        $array['捨'] = '舍';
        $array['籤'] = '签';
        $array['僕'] = '仆';
        $array['闢'] = '辟';
        $array['衊'] = '蔑';
        $array['濛'] = '蒙';
        $array['矇'] = '蒙';
        $array['儘'] = '尽';
        $array['薑'] = '姜';
        $array['颳'] = '刮';
        $array['噹'] = '当';
        $array['衝'] = '冲';
        $array['彆'] = '别';
        $array['臺'] = '台';
        $array['瀏'] = '浏';
        $array['號'] = '号';
        $array['產'] = '产';
        $array['紘'] = '纮';
        $array['財'] = '财';
        $array['恆'] = '恒';
        $array['啓'] = '启';
        $array['錡'] = '锜';
        $array['酈'] = '丽';
        return $array;
    }


    //1275个简体、繁体对照表做成数组
    private static function get_array_zh_hans_to_zh_hant() {
        $array = array(
            '皑' => '皚',
            '蔼' => '藹',
            '碍' => '礙',
            '爱' => '愛',
            '翱' => '翺',
            '袄' => ' 

路过

雷人

握手

鲜花

鸡蛋
来自: 网络收集

全部回复(0)