首页 > 语言 > PHP > 正文

PHP获取汉字的拼音字母实现程序

2024-09-04 11:44:09
字体:
来源:转载
供稿:网友

一个完整的php获取汉字拼音字母的实现程序,有需要的朋友可参考一下,php实例代码如下:

  1. <?php  
  2. class GetPingYing {  
  3.     private $pylist = array(  
  4. 'a'=>-20319,  
  5. 'ai'=>-20317,  
  6. 'an'=>-20304,  
  7. 'ang'=>-20295,  
  8. 'ao'=>-20292,  
  9. 'ba'=>-20283,  
  10. 'bai'=>-20265,  
  11. 'ban'=>-20257,  
  12. 'bang'=>-20242,  
  13. 'bao'=>-20230,  
  14. 'bei'=>-20051,  
  15. 'ben'=>-20036,  
  16. 'beng'=>-20032,  
  17. 'bi'=>-20026,  
  18. 'bian'=>-20002,  
  19. 'biao'=>-19990,  
  20. 'bie'=>-19986,  
  21. 'bin'=>-19982,  
  22. 'bing'=>-19976,  
  23. 'bo'=>-19805,  
  24. 'bu'=>-19784,  
  25. 'ca'=>-19775,  
  26. 'cai'=>-19774,  
  27. 'can'=>-19763,  
  28. 'cang'=>-19756,  
  29. 'cao'=>-19751,  
  30. 'ce'=>-19746,  
  31. 'ceng'=>-19741,  
  32. 'cha'=>-19739,  
  33. 'chai'=>-19728,  
  34. 'chan'=>-19725,  
  35. 'chang'=>-19715,  
  36. 'chao'=>-19540,  
  37. 'che'=>-19531,  
  38. 'chen'=>-19525,  
  39. 'cheng'=>-19515,  
  40. 'chi'=>-19500,  
  41. 'chong'=>-19484,  
  42. 'chou'=>-19479,  
  43. 'chu'=>-19467,  
  44. 'chuai'=>-19289,  
  45. 'chuan'=>-19288,  
  46. 'chuang'=>-19281,  
  47. 'chui'=>-19275,  
  48. 'chun'=>-19270,  
  49. 'chuo'=>-19263,  
  50. 'ci'=>-19261,  
  51. 'cong'=>-19249,  
  52. 'cou'=>-19243,  
  53. 'cu'=>-19242,  
  54. 'cuan'=>-19238,  
  55. 'cui'=>-19235,  
  56. 'cun'=>-19227,  
  57. 'cuo'=>-19224,  
  58. 'da'=>-19218,  
  59. 'dai'=>-19212,  
  60. 'dan'=>-19038,  
  61. 'dang'=>-19023,  
  62. 'dao'=>-19018,  
  63. 'de'=>-19006,  
  64. 'deng'=>-19003,  
  65. 'di'=>-18996,  
  66. 'dian'=>-18977,  
  67. 'diao'=>-18961,  
  68. 'die'=>-18952,  
  69. 'ding'=>-18783,  
  70. 'diu'=>-18774,  
  71. 'dong'=>-18773,  
  72. 'dou'=>-18763,  
  73. 'du'=>-18756,  
  74. 'duan'=>-18741,  
  75. 'dui'=>-18735,  
  76. 'dun'=>-18731,  
  77. 'duo'=>-18722,  
  78. 'e'=>-18710,  
  79. 'en'=>-18697,  
  80. 'er'=>-18696,  
  81. 'fa'=>-18526,  
  82. 'fan'=>-18518,  
  83. 'fang'=>-18501,  
  84. 'fei'=>-18490,  
  85. 'fen'=>-18478,  
  86. 'feng'=>-18463,  
  87. 'fo'=>-18448,  
  88. 'fou'=>-18447,  
  89. 'fu'=>-18446,  
  90. 'ga'=>-18239,  
  91. 'gai'=>-18237,  
  92. 'gan'=>-18231,  
  93. 'gang'=>-18220,  
  94. 'gao'=>-18211,  
  95. 'ge'=>-18201,  
  96. 'gei'=>-18184,  
  97. 'gen'=>-18183,  
  98. 'geng'=>-18181,  
  99. 'gong'=>-18012,  
  100. 'gou'=>-17997,  
  101. 'gu'=>-17988,  
  102. 'gua'=>-17970,  
  103. 'guai'=>-17964,  
  104. 'guan'=>-17961,  
  105. 'guang'=>-17950,  
  106. 'gui'=>-17947,  
  107. 'gun'=>-17931,  
  108. 'guo'=>-17928,  
  109. 'ha'=>-17922,  
  110. 'hai'=>-17759,  
  111. 'han'=>-17752,  
  112. 'hang'=>-17733,  
  113. 'hao'=>-17730,  
  114. 'he'=>-17721,  
  115. 'hei'=>-17703,  
  116. 'hen'=>-17701,  
  117. 'heng'=>-17697,  
  118. 'hong'=>-17692,  
  119. 'hou'=>-17683,  
  120. 'hu'=>-17676,  
  121. 'hua'=>-17496,  
  122. 'huai'=>-17487,  
  123. 'huan'=>-17482,  
  124. 'huang'=>-17468,  
  125. 'hui'=>-17454,  
  126. 'hun'=>-17433,  
  127. 'huo'=>-17427,  
  128. 'ji'=>-17417,  
  129. 'jia'=>-17202,  
  130. 'jian'=>-17185,  
  131. 'jiang'=>-16983,  
  132. 'jiao'=>-16970,  
  133. 'jie'=>-16942,  
  134. 'jin'=>-16915,  
  135. 'jing'=>-16733,  
  136. 'jiong'=>-16708,  
  137. 'jiu'=>-16706,  
  138. 'ju'=>-16689,  
  139. 'juan'=>-16664,  
  140. 'jue'=>-16657,  
  141. 'jun'=>-16647,  
  142. 'ka'=>-16474,  
  143. 'kai'=>-16470,  
  144. 'kan'=>-16465,  
  145. 'kang'=>-16459,  
  146. 'kao'=>-16452,  
  147. 'ke'=>-16448,  
  148. 'ken'=>-16433,  
  149. 'keng'=>-16429,  
  150. 'kong'=>-16427,  
  151. 'kou'=>-16423,  
  152. 'ku'=>-16419,  
  153. 'kua'=>-16412,  
  154. 'kuai'=>-16407,  
  155. 'kuan'=>-16403,  
  156. 'kuang'=>-16401,  
  157. 'kui'=>-16393,  
  158. 'kun'=>-16220,  
  159. 'kuo'=>-16216,  
  160. 'la'=>-16212,  
  161. 'lai'=>-16205,  
  162. 'lan'=>-16202,  
  163. 'lang'=>-16187,  
  164. 'lao'=>-16180,  
  165. 'le'=>-16171,  
  166. 'lei'=>-16169,  
  167. 'leng'=>-16158,  
  168. 'li'=>-16155,  
  169. 'lia'=>-15959,  
  170. 'lian'=>-15958,  
  171. 'liang'=>-15944,  
  172. 'liao'=>-15933,  
  173. 'lie'=>-15920,  
  174. 'lin'=>-15915,  
  175. 'ling'=>-15903,  
  176. 'liu'=>-15889,  
  177. 'long'=>-15878,  
  178. 'lou'=>-15707,  
  179. 'lu'=>-15701,  
  180. 'lv'=>-15681,  
  181. 'luan'=>-15667,  
  182. 'lue'=>-15661,  
  183. 'lun'=>-15659,  
  184. 'luo'=>-15652,  
  185. 'ma'=>-15640,  
  186. 'mai'=>-15631,  
  187. 'man'=>-15625,  
  188. 'mang'=>-15454,  
  189. 'mao'=>-15448,  
  190. 'me'=>-15436,  
  191. 'mei'=>-15435,  
  192. 'men'=>-15419,  
  193. 'meng'=>-15416,  
  194. 'mi'=>-15408,  
  195. 'mian'=>-15394,  
  196. 'miao'=>-15385,  
  197. 'mie'=>-15377,  
  198. 'min'=>-15375,  
  199. 'ming'=>-15369,  
  200. 'miu'=>-15363,  
  201. 'mo'=>-15362,  
  202. 'mou'=>-15183,  
  203. 'mu'=>-15180,  
  204. 'na'=>-15165,  
  205. 'nai'=>-15158,  
  206. 'nan'=>-15153,  
  207. 'nang'=>-15150,  
  208. 'nao'=>-15149,  
  209. 'ne'=>-15144,  
  210. 'nei'=>-15143,  
  211. 'nen'=>-15141,  
  212. 'neng'=>-15140,  
  213. 'ni'=>-15139,  
  214. 'nian'=>-15128,  
  215. 'niang'=>-15121,  
  216. 'niao'=>-15119,  
  217. 'nie'=>-15117,  
  218. 'nin'=>-15110,  
  219. 'ning'=>-15109,  
  220. 'niu'=>-14941,  
  221. 'nong'=>-14937,  
  222. 'nu'=>-14933,  
  223. 'nv'=>-14930,  
  224. 'nuan'=>-14929,  
  225. 'nue'=>-14928,  
  226. 'nuo'=>-14926,  
  227. 'o'=>-14922,  
  228. 'ou'=>-14921,  
  229. 'pa'=>-14914,  
  230. 'pai'=>-14908,  
  231. 'pan'=>-14902,  
  232. 'pang'=>-14894,  
  233. 'pao'=>-14889,  
  234. 'pei'=>-14882,  
  235. 'pen'=>-14873,  
  236. 'peng'=>-14871,  
  237. 'pi'=>-14857,  
  238. 'pian'=>-14678,  
  239. 'piao'=>-14674,  
  240. 'pie'=>-14670,  
  241. 'pin'=>-14668,  
  242. 'ping'=>-14663,  
  243. 'po'=>-14654,  
  244. 'pu'=>-14645,  
  245. 'qi'=>-14630,  
  246. 'qia'=>-14594,  
  247. 'qian'=>-14429,  
  248. 'qiang'=>-14407,  
  249. 'qiao'=>-14399,  
  250. 'qie'=>-14384,  
  251. 'qin'=>-14379,  
  252. 'qing'=>-14368,  
  253. 'qiong'=>-14355,  
  254. 'qiu'=>-14353,  
  255. 'qu'=>-14345,  
  256. 'quan'=>-14170,  
  257. 'que'=>-14159,  
  258. 'qun'=>-14151,  
  259. 'ran'=>-14149,  
  260. 'rang'=>-14145,  
  261. 'rao'=>-14140,  
  262. 're'=>-14137,  
  263. 'ren'=>-14135,  
  264. 'reng'=>-14125,  
  265. 'ri'=>-14123,  
  266. 'rong'=>-14122,  
  267. 'rou'=>-14112,  
  268. 'ru'=>-14109,  
  269. 'ruan'=>-14099,  
  270. 'rui'=>-14097,  
  271. 'run'=>-14094,  
  272. 'ruo'=>-14092,  
  273. 'sa'=>-14090,  
  274. 'sai'=>-14087,  
  275. 'san'=>-14083,  
  276. 'sang'=>-13917,  
  277. 'sao'=>-13914,  
  278. 'se'=>-13910,  
  279. 'sen'=>-13907,  
  280. 'seng'=>-13906,  
  281. 'sha'=>-13905,  
  282. 'shai'=>-13896,  
  283. 'shan'=>-13894,  
  284. 'shang'=>-13878,  
  285. 'shao'=>-13870,  
  286. 'she'=>-13859,  
  287. 'shen'=>-13847,  
  288. 'sheng'=>-13831,  
  289. 'shi'=>-13658,  
  290. 'shou'=>-13611,  
  291. 'shu'=>-13601,  
  292. 'shua'=>-13406,  
  293. 'shuai'=>-13404,  
  294. 'shuan'=>-13400,  
  295. 'shuang'=>-13398,  
  296. 'shui'=>-13395,  
  297. 'shun'=>-13391,  
  298. 'shuo'=>-13387,  
  299. 'si'=>-13383,  
  300. 'song'=>-13367,  
  301. 'sou'=>-13359,  
  302. 'su'=>-13356,  
  303. 'suan'=>-13343,  
  304. 'sui'=>-13340,  
  305. 'sun'=>-13329,  
  306. 'suo'=>-13326,  
  307. 'ta'=>-13318,  
  308. 'tai'=>-13147,  
  309. 'tan'=>-13138,  
  310. 'tang'=>-13120,  
  311. 'tao'=>-13107,  
  312. 'te'=>-13096,  
  313. 'teng'=>-13095,  
  314. 'ti'=>-13091,  
  315. 'tian'=>-13076,  
  316. 'tiao'=>-13068,  
  317. 'tie'=>-13063,  
  318. 'ting'=>-13060,  
  319. 'tong'=>-12888,  
  320. 'tou'=>-12875,  
  321. 'tu'=>-12871,  
  322. 'tuan'=>-12860,  
  323. 'tui'=>-12858,  
  324. 'tun'=>-12852,  
  325. 'tuo'=>-12849,  
  326. 'wa'=>-12838,  
  327. 'wai'=>-12831,  
  328. 'wan'=>-12829,  
  329. 'wang'=>-12812,  
  330. 'wei'=>-12802,  
  331. 'wen'=>-12607,  
  332. 'weng'=>-12597,  
  333. 'wo'=>-12594,  
  334. 'wu'=>-12585,  
  335. 'xi'=>-12556,  
  336. 'xia'=>-12359,  
  337. 'xian'=>-12346,  
  338. 'xiang'=>-12320,  
  339. 'xiao'=>-12300,  
  340. 'xie'=>-12120,  
  341. 'xin'=>-12099,  
  342. 'xing'=>-12089,  
  343. 'xiong'=>-12074,  
  344. 'xiu'=>-12067,  
  345. 'xu'=>-12058,  
  346. 'xuan'=>-12039,  
  347. 'xue'=>-11867,  
  348. 'xun'=>-11861,  
  349. 'ya'=>-11847,  
  350. 'yan'=>-11831,  
  351. 'yang'=>-11798,  
  352. 'yao'=>-11781,  
  353. 'ye'=>-11604,  
  354. 'yi'=>-11589,  
  355. 'yin'=>-11536,  
  356. 'ying'=>-11358,  
  357. 'yo'=>-11340,  
  358. 'yong'=>-11339,  
  359. 'you'=>-11324,  
  360. 'yu'=>-11303,  
  361. 'yuan'=>-11097,  
  362. 'yue'=>-11077,  
  363. 'yun'=>-11067,  
  364. 'za'=>-11055,  
  365. 'zai'=>-11052,  
  366. 'zan'=>-11045,  
  367. 'zang'=>-11041,  
  368. 'zao'=>-11038,  
  369. 'ze'=>-11024,  
  370. 'zei'=>-11020,  
  371. 'zen'=>-11019,  
  372. 'zeng'=>-11018,  
  373. 'zha'=>-11014,  
  374. 'zhai'=>-10838,  
  375. 'zhan'=>-10832,  
  376. 'zhang'=>-10815,  
  377. 'zhao'=>-10800,  
  378. 'zhe'=>-10790,  
  379. 'zhen'=>-10780,  
  380. 'zheng'=>-10764,  
  381. 'zhi'=>-10587,  
  382. 'zhong'=>-10544,  
  383. 'zhou'=>-10533,  
  384. 'zhu'=>-10519,  
  385. 'zhua'=>-10331,  
  386. 'zhuai'=>-10329,  
  387. 'zhuan'=>-10328,  
  388. 'zhuang'=>-10322,  
  389. 'zhui'=>-10315,  
  390. 'zhun'=>-10309,  
  391. 'zhuo'=>-10307,  
  392. 'zi'=>-10296,  
  393. 'zong'=>-10281,  
  394. 'zou'=>-10274,  
  395. 'zu'=>-10270,  
  396. 'zuan'=>-10262,  
  397. 'zui'=>-10260,  
  398. 'zun'=>-10256,  
  399. 'zuo'=>-10254  
  400.     );  
  401.     //全部拼音  
  402.     public function getAllPY($chinese$delimiter = ''$length = 0) {  
  403.        $py = $this->zh_to_pys($chinese$delimiter);  
  404.        if($length) {  
  405.            $py = substr($py, 0, $length);  
  406.        }  
  407.        return $py;  
  408.     }  
  409.     //拼音首个字母  
  410.     public function getFirstPY($chinese){  
  411.        $result = '' ;  
  412.        for ($i=0; $i<strlen($chinese); $i++) {  
  413.            $p = ord(substr($chinese,$i,1));  
  414.            if ($p>160) {  
  415.               $q = ord(substr($chinese,++$i,1));  
  416.               $p = $p*256 + $q - 65536;  
  417.            }  
  418.            $result .= substr($this->zh_to_py($p),0,1);  
  419.        }  
  420.        return $result ;  
  421.     }  
  422.     
  423.    
  424.     //-------------------中文转拼音--------------------------------//  
  425.     private function zh_to_py($num$blank = '') {  
  426.        if($num>0 && $num<160 ) {  
  427.            return chr($num);  
  428.        } elseif ($num<-20319||$num>-10247) {  
  429.            return $blank;  
  430.        } else {  
  431.            foreach ($this->pylist as $py => $code) {  
  432.               if($code > $numbreak;  
  433.               $result = $py;  
  434.            }  
  435.            return $result;  
  436.        }  
  437.     }  
  438.     
  439.    
  440.     private function zh_to_pys($chinese$delimiter = ' '$first=0){  
  441.        $result = array();  
  442.        for($i=0; $i<strlen($chinese); $i++) {  
  443.            $p = ord(substr($chinese,$i,1));  
  444.            if($p>160) {  
  445.               $q = ord(substr($chinese,++$i,1));  
  446.               $p = $p*256 + $q - 65536;  
  447.            }  
  448.            $result[] = $this->zh_to_py($p);  
  449.            if ($first) {  
  450.               return $result[0];  
  451.            }  
  452.        }  
  453.        return implode($delimiter$result);  
  454.     }  
  455. }  
  456. //-------------------------中文转拼音结束--------------------------------//  
  457. //中文是双字节,所以需要两个字节连接起来(ASCII码的范围是在161-255)  
  458. $c = '齐秦';  
  459. for($i=0; $i<strlen($c); $i++) {  
  460.     echo ord($c[$i]).' ';//198 235 199 216  
  461. }  
  462. echo '<br>',chr(198).chr(235).chr(199).chr(216),'<br>';  //开源代码Vevb.com 
  463.    
  464. //测试  
  465. $PingYing = new GetPingYing();  
  466. echo '<br>',$PingYing->getFirstPY('羽泉乐队,歌不错-推荐'),'<br>';//yqldgbc-tj  
  467. echo $PingYing->getAllPY('羽泉乐队,歌不错-推荐'),'<br>';   //yuquanleduigebucuo-tuijian  
  468. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表