最全的PHP汉字转拼音函数(共25961字,包含20902个基本汉字+5059生僻字)
1. [文件] pinyin.php
2. [文件] pinyin_gbk.php
3. [文件] pinyin_ms.php
4. [文件] pinyin_mini.php
<?php $start_time = microtime(1); // 此类是根据ASCII码转换,GB2312库对多音字也无能为力,此类优点是性能比较高。 // GB2312标准共收录6763个汉字,此类的算法只支持其中的一级汉字3755个,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。 class pinyin{ public static function utf8_to($s, $isfirst = false) { return self::to(self::utf8_to_gb2312($s), $isfirst); } public static function utf8_to_gb2312($s) { return iconv('UTF-8', 'GB2312//IGNORE', $s); } // 字符串必须为GB2312编码 public static function to($s, $isfirst = false) { $res = ''; $len = strlen($s); $pinyin_arr = self::get_pinyin_array(); for($i=0; $i<$len; $i++) { $ascii = ord($s[$i]); if($ascii > 0x80) { $ascii2 = ord($s[++$i]); $ascii = $ascii * 256 + $ascii2 - 65536; } if($ascii < 255 && $ascii > 0) { if(($ascii >= 48 && $ascii <= 57) || ($ascii >= 97 && $ascii <= 122)) { $res .= $s[$i]; // 0-9 a-z }elseif($ascii >= 65 && $ascii <= 90) { $res .= strtolower($s[$i]); // A-Z }else{ $res .= '_'; } }elseif($ascii < -20319 || $ascii > -10247) { $res .= '_'; }else{ foreach($pinyin_arr as $py=>$asc) { if($asc <= $ascii) { $res .= $isfirst ? $py[0] : $py; break; } } } } return $res; } public static function to_first($s) { $ascii = ord($s[0]); if($ascii > 0xE0) { $s = self::utf8_to_gb2312($s[0].$s[1].$s[2]); }elseif($ascii < 0x80) { if($ascii >= 65 && $ascii <= 90) { return strtolower($s[0]); }elseif($ascii >= 97 && $ascii <= 122) { return $s[0]; }else{ return false; } } if(strlen($s) < 2) { return false; } $asc = ord($s[0]) * 256 + ord($s[1]) - 65536; if($asc>=-20319 && $asc<=-20284) return 'a'; if($asc>=-20283 && $asc<=-19776) return 'b'; if($asc>=-19775 && $asc<=-19219) return 'c'; if($asc>=-19218 && $asc<=-18711) return 'd'; if($asc>=-18710 && $asc<=-18527) return 'e'; if($asc>=-18526 && $asc<=-18240) return 'f'; if($asc>=-18239 && $asc<=-17923) return 'g'; if($asc>=-17922 && $asc<=-17418) return 'h'; if($asc>=-17417 && $asc<=-16475) return 'j'; if($asc>=-16474 && $asc<=-16213) return 'k'; if($asc>=-16212 && $asc<=-15641) return 'l'; if($asc>=-15640 && $asc<=-15166) return 'm'; if($asc>=-15165 && $asc<=-14923) return 'n'; if($asc>=-14922 && $asc<=-14915) return 'o'; if($asc>=-14914 && $asc<=-14631) return 'p'; if($asc>=-14630 && $asc<=-14150) return 'q'; if($asc>=-14149 && $asc<=-14091) return 'r'; if($asc>=-14090 && $asc<=-13319) return 's'; if($asc>=-13318 && $asc<=-12839) return 't'; if($asc>=-12838 && $asc<=-12557) return 'w'; if($asc>=-12556 && $asc<=-11848) return 'x'; if($asc>=-11847 && $asc<=-11056) return 'y'; if($asc>=-11055 && $asc<=-10247) return 'z'; return false; } public static function get_pinyin_array() { static $py_arr; if(isset($py_arr)) return $py_arr; $k = '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'; $v = '-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'; $key = explode('|', $k); $val = explode('|', $v); $py_arr = array_combine($key, $val); arsort($py_arr); return $py_arr; } } /* var_dump(0xE0); for($i=0; $i<=255; $i++) { var_dump("$i :". chr($i)); } */ var_dump(pinyin::utf8_to('朱镕基')); var_dump(pinyin::utf8_to('我是中国人')); var_dump(pinyin::utf8_to('PHP汉字转拼音类')); var_dump(pinyin::utf8_to('GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。')); var_dump(pinyin::utf8_to('`1234567890-=QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./abcdefghijklmnopqrstuvwxyz')); var_dump(pinyin::utf8_to('朱镕基', 1)); var_dump(pinyin::utf8_to('我是中国人', 1)); var_dump(pinyin::utf8_to('PHP汉字转拼音类', 1)); var_dump(pinyin::utf8_to('GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。', 1)); var_dump(pinyin::utf8_to('`1234567890-=QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./abcdefghijklmnopqrstuvwxyz', 1)); var_dump(pinyin::to_first('朱镕基')); var_dump(pinyin::to_first('我是中国人')); var_dump(pinyin::to_first('PHP汉字转拼音类')); var_dump(pinyin::to_first('GB2312标准共收录6763个汉字,不在范围内的汉字是无法转换,如:中国前总理朱镕基的“镕”字。')); var_dump(pinyin::to_first('▂▃▄▅▆▇█▉`1234567890-=QWERTYUIOP[]ASDFGHJKL;ZXCVBNM,./abcdefghijklmnopqrstuvwxyz')); echo number_format(microtime(1) - $start_time, 6); ?>
Copy after login
5. [文件] uniku.zip
6. [文件] TableTextServiceSimplifiedQuanPin.zip
TableTextServiceSimplifiedQuanPin.zip
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

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article
How to fix KB5055523 fails to install in Windows 11?
3 weeks ago
By DDD
How to fix KB5055518 fails to install in Windows 10?
3 weeks ago
By DDD
Roblox: Dead Rails - How To Tame Wolves
4 weeks ago
By DDD
Strength Levels for Every Enemy & Monster in R.E.P.O.
3 weeks ago
By 尊渡假赌尊渡假赌尊渡假赌
Roblox: Grow A Garden - Complete Mutation Guide
2 weeks ago
By DDD

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics
Java Tutorial
1655
14


CakePHP Tutorial
1414
52


Laravel Tutorial
1307
25


PHP Tutorial
1253
29


C# Tutorial
1228
24

