欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

php教程

php简体转繁体方法大全

php教程 我的站长站 2023-10-21 共13人阅读

* 中文简繁体切换
* zh-hans为简体中文 zh-hant为繁体中文
* $input 需要转换的文本
* $change_language_code 转换语言代码
* $current_language_code 当前语言代码

class ZhConvert{
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;
}