php中将汉字转换成拼音的函数代码


Posted in PHP onSeptember 08, 2012

点击这里下载源文件

function Pinyin($_String, $_Code='gb2312') 
{ 
$_DataKey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha". 
"|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong|cou|cu|". 
"cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|diao|die|ding|diu|dong|dou|du|duan|dui|dun|duo|e|en|er". 
"|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei|gen|geng|gong|gou|gu|gua|guai|guan|guang|gui". 
"|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua|huai|huan|huang|hui|hun|huo|ji|jia|jian|jiang". 
"|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke|ken|keng|kong|kou|ku|kua|kuai|kuan|kuang". 
"|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng|li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue". 
"|lun|luo|ma|mai|man|mang|mao|me|mei|men|meng|mi|mian|miao|mie|min|ming|miu|mo|mou|mu|na|nai|nan|nang|nao|ne". 
"|nei|nen|neng|ni|nian|niang|niao|nie|nin|ning|niu|nong|nu|nv|nuan|nue|nuo|o|ou|pa|pai|pan|pang|pao|pei|pen". 
"|peng|pi|pian|piao|pie|pin|ping|po|pu|qi|qia|qian|qiang|qiao|qie|qin|qing|qiong|qiu|qu|quan|que|qun|ran|rang". 
"|rao|re|ren|reng|ri|rong|rou|ru|ruan|rui|run|ruo|sa|sai|san|sang|sao|se|sen|seng|sha|shai|shan|shang|shao|". 
"she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou|su|suan|sui|sun|suo|ta|tai|". 
"tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu". 
"|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you". 
"|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|". 
"zhou|zhu|zhua|zhuai|zhuan|zhuang|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo"; $_DataValue = "-20319|-20317|-20304|-20295|-20292|-20283|-20265|-20257|-20242|-20230|-20051|-20036|-20032|-20026|-20002|-19990". 
"|-19986|-19982|-19976|-19805|-19784|-19775|-19774|-19763|-19756|-19751|-19746|-19741|-19739|-19728|-19725". 
"|-19715|-19540|-19531|-19525|-19515|-19500|-19484|-19479|-19467|-19289|-19288|-19281|-19275|-19270|-19263". 
"|-19261|-19249|-19243|-19242|-19238|-19235|-19227|-19224|-19218|-19212|-19038|-19023|-19018|-19006|-19003". 
"|-18996|-18977|-18961|-18952|-18783|-18774|-18773|-18763|-18756|-18741|-18735|-18731|-18722|-18710|-18697". 
"|-18696|-18526|-18518|-18501|-18490|-18478|-18463|-18448|-18447|-18446|-18239|-18237|-18231|-18220|-18211". 
"|-18201|-18184|-18183|-18181|-18012|-17997|-17988|-17970|-17964|-17961|-17950|-17947|-17931|-17928|-17922". 
"|-17759|-17752|-17733|-17730|-17721|-17703|-17701|-17697|-17692|-17683|-17676|-17496|-17487|-17482|-17468". 
"|-17454|-17433|-17427|-17417|-17202|-17185|-16983|-16970|-16942|-16915|-16733|-16708|-16706|-16689|-16664". 
"|-16657|-16647|-16474|-16470|-16465|-16459|-16452|-16448|-16433|-16429|-16427|-16423|-16419|-16412|-16407". 
"|-16403|-16401|-16393|-16220|-16216|-16212|-16205|-16202|-16187|-16180|-16171|-16169|-16158|-16155|-15959". 
"|-15958|-15944|-15933|-15920|-15915|-15903|-15889|-15878|-15707|-15701|-15681|-15667|-15661|-15659|-15652". 
"|-15640|-15631|-15625|-15454|-15448|-15436|-15435|-15419|-15416|-15408|-15394|-15385|-15377|-15375|-15369". 
"|-15363|-15362|-15183|-15180|-15165|-15158|-15153|-15150|-15149|-15144|-15143|-15141|-15140|-15139|-15128". 
"|-15121|-15119|-15117|-15110|-15109|-14941|-14937|-14933|-14930|-14929|-14928|-14926|-14922|-14921|-14914". 
"|-14908|-14902|-14894|-14889|-14882|-14873|-14871|-14857|-14678|-14674|-14670|-14668|-14663|-14654|-14645". 
"|-14630|-14594|-14429|-14407|-14399|-14384|-14379|-14368|-14355|-14353|-14345|-14170|-14159|-14151|-14149". 
"|-14145|-14140|-14137|-14135|-14125|-14123|-14122|-14112|-14109|-14099|-14097|-14094|-14092|-14090|-14087". 
"|-14083|-13917|-13914|-13910|-13907|-13906|-13905|-13896|-13894|-13878|-13870|-13859|-13847|-13831|-13658". 
"|-13611|-13601|-13406|-13404|-13400|-13398|-13395|-13391|-13387|-13383|-13367|-13359|-13356|-13343|-13340". 
"|-13329|-13326|-13318|-13147|-13138|-13120|-13107|-13096|-13095|-13091|-13076|-13068|-13063|-13060|-12888". 
"|-12875|-12871|-12860|-12858|-12852|-12849|-12838|-12831|-12829|-12812|-12802|-12607|-12597|-12594|-12585". 
"|-12556|-12359|-12346|-12320|-12300|-12120|-12099|-12089|-12074|-12067|-12058|-12039|-11867|-11861|-11847". 
"|-11831|-11798|-11781|-11604|-11589|-11536|-11358|-11340|-11339|-11324|-11303|-11097|-11077|-11067|-11055". 
"|-11052|-11045|-11041|-11038|-11024|-11020|-11019|-11018|-11014|-10838|-10832|-10815|-10800|-10790|-10780". 
"|-10764|-10587|-10544|-10533|-10519|-10331|-10329|-10328|-10322|-10315|-10309|-10307|-10296|-10281|-10274". 
"|-10270|-10262|-10260|-10256|-10254"; 
$_TDataKey = explode('|', $_DataKey); 
$_TDataValue = explode('|', $_DataValue); 
$_Data = (PHP_VERSION>='5.0') ? array_combine($_TDataKey, $_TDataValue) : _Array_Combine($_TDataKey, $_TDataValue); 
arsort($_Data); 
reset($_Data); 
if($_Code != 'gb2312') $_String = _U2_Utf8_Gb($_String); 
$_Res = ''; 
for($i=0; $i160) { $_Q = ord(substr($_String, ++$i, 1)); $_P = $_P*256 + $_Q - 65536; } 
$_Res .= _Pinyin($_P, $_Data); 
} 
return preg_replace("/[^a-z0-9]*/", '', $_Res); 
} 
function _Pinyin($_Num, $_Data) 
{ 
if ($_Num>0 && $_Num<160 ) return chr($_Num); 
elseif($_Num<-20319 || $_Num>-10247) return ''; 
else { 
foreach($_Data as $k=>$v){ if($v<=$_Num) break; } 
return $k; 
} 
} 
function _U2_Utf8_Gb($_C) 
{ 
$_String = ''; 
if($_C < 0x80) $_String .= $_C; 
elseif($_C < 0x800) { $_String .= chr(0xC0 | $_C>>6); 
$_String .= chr(0x80 | $_C & 0x3F); 
}elseif($_C < 0x10000){ $_String .= chr(0xE0 | $_C>>12); 
$_String .= chr(0x80 | $_C>>6 & 0x3F); 
$_String .= chr(0x80 | $_C & 0x3F); 
} elseif($_C < 0x200000) { $_String .= chr(0xF0 | $_C>>18); 
$_String .= chr(0x80 | $_C>>12 & 0x3F); 
$_String .= chr(0x80 | $_C>>6 & 0x3F); 
$_String .= chr(0x80 | $_C & 0x3F); 
} 
return iconv('UTF-8', 'GB2312', $_String); 
} 
function _Array_Combine($_Arr1, $_Arr2) 
{ 
for($i=0; $i
PHP 相关文章推荐
PHP 身份证号验证函数
May 07 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
PHP线程的内存回收问题
Jul 08 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
php pdo连接数据库操作示例
Nov 18 PHP
php慢查询日志和错误日志使用详解
Feb 27 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 #PHP
header跳转和include包含问题详解
Sep 08 #PHP
php比较多维数组中值的大小排序实现代码
Sep 08 #PHP
JSON在PHP中的应用介绍
Sep 08 #PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 #PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 #PHP
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 #PHP
You might like
第六章 php目录与文件操作
2011/12/30 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
python控制台中实现进度条功能
2015/11/10 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python工厂函数用法实例分析
2018/05/14 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
解决Mac下使用python的坑
2019/08/13 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
法制教育演讲稿
2014/09/10 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2014年财务部工作总结
2014/11/11 职场文书
公司费用报销管理制度
2015/08/04 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Hive常用日期格式转换语法
2022/06/25 数据库