Home >php教程 >php手册 >php中文转拼音的代码

php中文转拼音的代码

WBOY
WBOYOriginal
2016-06-13 09:43:341023browse

例子:

<?<span php
</span><span /*</span><span *
* php中文转拼音
* 整理:www.jbxue.com 脚本学堂
* 日期:2014/2/11
</span><span */</span>
<span function</span> Pinyin(<span $_String</span>, <span $_Code</span>='gb2312'<span )
{
</span><span $_DataKey</span> = "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"<span ;
</span><span $_DataValue</span> = "-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"<span ;
</span><span $_TDataKey</span> = <span explode</span>('|', <span $_DataKey</span><span );
</span><span $_TDataValue</span> = <span explode</span>('|', <span $_DataValue</span><span );
</span><span $_Data</span> = (<span PHP_VERSION</span>>='5.0') ? <span array_combine</span>(<span $_TDataKey</span>, <span $_TDataValue</span>) : _Array_Combine(<span $_TDataKey</span>, <span $_TDataValue</span><span );
</span><span arsort</span>(<span $_Data</span><span );
</span><span reset</span>(<span $_Data</span><span );
</span><span if</span>(<span $_Code</span> != 'gb2312') <span $_String</span> = _U2_Utf8_Gb(<span $_String</span><span );
</span><span $_Res</span> = ''<span ;
</span><span for</span>(<span $i</span>=0; <span $i</span><<span strlen</span>(<span $_String</span>); <span $i</span>++<span )
{
</span><span $_P</span> = <span ord</span>(<span substr</span>(<span $_String</span>, <span $i</span>, 1<span ));
</span><span if</span>(<span $_P</span>>160) { <span $_Q</span> = <span ord</span>(<span substr</span>(<span $_String</span>, ++<span $i</span>, 1)); <span $_P</span> = <span $_P</span>*256 + <span $_Q</span> - 65536<span ; }
</span><span $_Res</span> .= _Pinyin(<span $_P</span>, <span $_Data</span><span );
}
</span><span return</span> <span preg_replace</span>("/[^a-z0-9]*/", '', <span $_Res</span><span );
}
</span><span function</span> _Pinyin(<span $_Num</span>, <span $_Data</span><span )
{
</span><span if</span> (<span $_Num</span>>0 && <span $_Num</span><160 ) <span return</span> <span chr</span>(<span $_Num</span><span );
</span><span elseif</span>(<span $_Num</span><-20319 || <span $_Num</span>>-10247) <span return</span> ''<span ;
</span><span else</span><span  {
</span><span foreach</span>(<span $_Data</span> <span as</span> <span $k</span>=><span $v</span>){ <span if</span>(<span $v</span><=<span $_Num</span>) <span break</span><span ; }
</span><span return</span> <span $k</span><span ;
}
}
</span><span function</span> _U2_Utf8_Gb(<span $_C</span><span )
{
</span><span $_String</span> = ''<span ;
</span><span if</span>(<span $_C</span> < 0x80) <span $_String</span> .= <span $_C</span><span ;
</span><span elseif</span>(<span $_C</span> < 0x800<span )
{
</span><span $_String</span> .= <span chr</span>(0xC0 | <span $_C</span>>>6<span );
</span><span $_String</span> .= <span chr</span>(0x80 | <span $_C</span> & 0x3F<span );
}</span><span elseif</span>(<span $_C</span> < 0x10000<span ){
</span><span $_String</span> .= <span chr</span>(0xE0 | <span $_C</span>>>12<span );
</span><span $_String</span> .= <span chr</span>(0x80 | <span $_C</span>>>6 & 0x3F<span );
</span><span $_String</span> .= <span chr</span>(0x80 | <span $_C</span> & 0x3F<span );
} </span><span elseif</span>(<span $_C</span> < 0x200000<span ) {
</span><span $_String</span> .= <span chr</span>(0xF0 | <span $_C</span>>>18<span );
</span><span $_String</span> .= <span chr</span>(0x80 | <span $_C</span>>>12 & 0x3F<span );
</span><span $_String</span> .= <span chr</span>(0x80 | <span $_C</span>>>6 & 0x3F<span );
</span><span $_String</span> .= <span chr</span>(0x80 | <span $_C</span> & 0x3F<span );
}
</span><span return</span> <span iconv</span>('UTF-8', 'GB2312', <span $_String</span><span );
}
</span><span function</span> _Array_Combine(<span $_Arr1</span>, <span $_Arr2</span><span )
{
</span><span for</span>(<span $i</span>=0; <span $i</span><<span count</span>(<span $_Arr1</span>); <span $i</span>++) <span $_Res</span>[<span $_Arr1</span>[<span $i</span>]] = <span $_Arr2</span>[<span $i</span><span ];
</span><span return</span> <span $_Res</span><span ;
}
</span><span //</span><span 用法:
//第二个参数留空则为gb1232编码
//echo Pinyin('安徽');
//第二个参数随意设置则为utf-8编码</span>
<span echo</span> Pinyin('安徽软件有限公司',1<span );
</span>?>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn