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

php中文转拼音的代码

WBOY
Release: 2016-06-13 09:43:34
Original
1022 people have browsed it

例子:

<?<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>?>
Copy after login
Related labels:
source:php.cn
Statement of this Website
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
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template