<?php/** * php Chinese Pinyin * @author Jerryli (hzjerry@gmail.com) * @version V0.20140715 * @package SPFW.core.lib.final * @global sea_php_fw_var_env * @example * echo cutf8_py::encode (' Alibaba Technology Co., Ltd. '); Code for pinyin First letter * Echo Cutf8_py::encode (' Alibaba Technology Co., Ltd. ', ' all '); code for full Pinyin/class Cutf8_py {/** * Pinyin character Conversion chart * @var array */private static $_amaps = Array (' A ' =>-20319, ' ai ' = >-20317, ' an ' =>-20304, ' ang ' =>-20295, ' ao ' =>-20292, ' ba ' =>-20283, ' Bai ' =>-20265, ' ban ' =>-20257, ' Bang ' =>-20242, ' bao ' =>-20230, ' bei ' =>-20051, ' Ben ' =>-20036, ' Beng ' =>-20032, ' bi ' =>-20026, ' bian ' >-20002, ' Biao ' =>-19990, ' Bie ' =>-19986, ' bin ' =>-19982, ' Bing ' =>-19976, ' bo ' =>-19805, ' bu ' =>- 19784, ' Ca ' =>-19775, ' cai ' =>-19774, ' can ' =>-19763, ' Cang ' =>-19756, ' Cao ' =>-19751, ' CE ' =>-19746, ' CEng ' =>-19741, ' Cha ' =>-19739, ' Chai ' =>-19728, ' Chan ' =>-19725, ' Chang ' =>-19715, ' Chao ' =>-19540, ' Che ' =>-19531, ' Chen ' =>-19525, ' Cheng ' =>-19515, ' chi ' =>-19500, ' Chong ' =>-19484, ' Chou ' =>-19479, ' Chu ' =>-19467, ' Chuai ' =>-19289, ' Chuan ' =>-19288, ' Chuang ' =>- 19281, ' Chui ' =>-19275, ' Chun ' =>-19270, ' Chuo ' =>-19263, ' ci ' =>-19261, ' Cong ' =>-19249, ' cou ' =>-19243 , ' cu ' =>-19242, ' Cuan ' =>-19238, ' cui ' =>-19235, ' cun ' =>-19227, ' CuO ' =>-19224, ' da ' =>-19218, ' dai ' = >-19212, ' Dan ' =>-19038, ' dang ' =>-19023, ' DAO ' =>-19018, ' de ' =>-19006, ' Deng ' =>-19003, ' di ' =>- 18996, ' Dian ' =>-18977, ' Diao ' =>-18961, ' die ' =>-18952, ' ding ' =>-18783, ' Diu ' =>-18774, ' Dong ' =>- 18773, ' Dou ' =>-18763, ' du ' =>-18756, ' Duan ' =>-18741, ' DUI ' =>-18735, ' dun ' =>-18731, ' duo ' =>-18722, ' E ' =>-18710, ' en ' =>-18697, ' er ' =>-18696, ' fa ' =>-18526, ' fan ' =>-18518, ' Fang ' =>-18501, ' Fei ' =>- 18490, ' Fen ' =>-18478, ' Feng ' =>-18463, ' fo ' =>-18448, ' fou ' =>-18447, ' Fu ' =>-18446, ' ga ' =>-18239, ' Gai ' =>-18237, ' gan ' =>-18231, ' gang ' =>-18220, ' Gao ' =>-18211, ' ge ' =>-18201, ' GEi ' =>-18184, ' gen ' = >-18183, ' Geng ' =>-18181, ' Gong ' =>-18012, ' Gou ' =>-17997, ' gu ' =>-17988, ' gua ' =>-17970, ' Guai ' =>-17964, ' Guan ' =>- 17961, ' Guang ' =>-17950, ' GUI ' =>-17947, ' gun ' =>-17931, ' Guo ' =>-17928, ' ha ' =>-17922, ' hai ' =>-17759, ' Han ' =>-17752, ' Hang ' =>-17733, ' Hao ' =>-17730, ' he ' =>-17721, ' hei ' =>-17703, ' hen ' =>-17701, ' Heng ' >-17697, ' =>-17692 ', ' Hou ' =>-17683, ' Hu ' =>-17676, ' Hua ' =>-17496, ' Huai ' =>-17487, ' Huan ' =>- 17482, ' Huang ' =>-17468, ' hui ' =>-17454, ' Hun ' =>-17433, ' Huo ' =>-17427, ' Ji ' =>-17417, ' Jia ' =>-17202, ' Jian ' =>-17185, ' Jiang ' =>-16983, ' jiao ' =>-16970, ' Jie ' =>-16942, ' Jin ' =>-16915, ' Jing ' =>-16733, ' Jiong ' =>-16708, ' JIU ' =>-16706, ' Ju ' =>-16689, ' Juan ' =>-16664, ' Jue ' =>-16657, ' June ' =>-16647, ' ka ' >-16474, ' Kai ' =>-16470, ' kan ' =>-16465, ' Kang ' =>-16459, ' kao ' =>-16452, ' ke ' =>-16448, ' Ken ' =>- 16433, ' Keng ' =>-16429, ' Kong ' =>-16427, ' Kou ' =>-16423, ' ku ' =>-16419, ' Kua ' =>-16412, ' Kuai ' =>-16407, ' Kuan ' =>-16403, ' Kuang ' =>-16401, ' Kui ' =>-16393, ' Kun ' =>-16220, ' Kuo ' =>-16216, ' La ' =>-16212, ' Lai ' =>-16205, ' Lan ' =>-16202, ' Lang ' =>-16187, ' Lao ' =>-16180, ' Le ' =>-16171, ' lei ' =>-16169, ' Leng ' =>-16158, ' li ' = >-16155, ' Lia ' =>-15959, ' Lian ' =>-15958, ' Liang ' =>-15944, ' Liao ' =>-15933, ' lie ' =>-15920, ' Lin ' => -15915, ' Ling ' =>-15903, ' Liu ' =>-15889, ' long ' =>-15878, ' Lou ' =>-15707, ' Lu ' =>-15701, ' LV ' =>-15681, ' Luan ' =>-15667, ' Lue ' =>-15661, ' lun ' =>-15659, ' Luo ' =>-15652, ' ma ' =>-15640, ' mai ' =>-15631, ' man ' = >-15625, ' Mang ' =>-15454, ' Mao ' =>-15448, ' Me ' =>-15436, ' Mei ' =>-15435, ' Men ' =>-15419, ' Meng ' =>- 15416, ' mi ' =>-15408, ' Mian ' =>-15394, ' Miao ' =>-15385, ' mie ' =>-15377, ' min ' =>-15375, ' Ming ' =>-15369, ' Miu ' =>-15363, ' Mo ' =>-15362, ' mou ' =>-15183, ' mu ' =>-15180, ' na ' =>-15165, ' nai ' =>-15158, ' nan ' =>- 15153, ' Nang ' =>-15150, ' Nao ' =>-15149, ' ne ' =>-15144, ' nei ' =>-15143, ' nen ' =>-15141, ' Neng ' =>-15140, ' Ni ' =>-15139, ' Nian ' =>-15128, ' Niang ' =>-15121, ' Niao ' =>-15119, ' nie ' =>-15117, ' nin ' =>-15110, ' ning ' =>-15109 , ' Niu ' =>-14941, ' Nong ' =>-14937, ' Nu ' =>-14933, ' NV ' =>-14930, ' Nuan ' =>-14929, ' nue ' =>-14928, ' nuo ' >-14926, ' o ' =>-14922, ' ou ' =>-14921, ' pa ' =>-14914, ' pai ' =>-14908, ' Pan ' =>-14902, ' Pang ' =>-14894, ' Pao ' =>-14889, ' Pei ' =>-14882, ' pen ' =>-14873, ' Peng ' =>-14871, ' pi ' =>-14857, ' Pian ' =>-14678, ' Piao ' >-14674, ' Pie ' =>-14670, ' pin ' =>-14668, ' ping ' =>-14663, ' po ' =>-14654, ' pu ' =>-14645, ' qi ' =>-14630 , ' QIA ' =>-14594, ' Qian ' =>-14429, ' Qiang ' =>-14407, ' Qiao ' =>-14399, ' qie ' =>-14384, ' Qin ' =>-14379, ' Qing ' =>-14368, ' Qiong ' =>-14355, ' Qiu ' =>-14353, ' qu ' =>-14345, ' Quan ' =>-14170, ' que ' =>-14159, ' Qun ' >-14151, ' ran ' =>-14149, ' rang ' =>-14145, ' Rao ' =>-14140, ' re ' =>-14137, ' ren ' =>-14135, ' Reng ' =>- 14125, ' ri ' =>-14123, ' Rong ' =>-14122, ' Rou ' =>-14112, ' ru ' =>-14109, ' Ruan ' =>-14099, ' Rui ' =>-14097, ' Run=>-14094, ' Ruo ' =>-14092, ' sa ' =>-14090, ' sai ' =>-14087, ' san ' =>-14083, ' sang ' =>-13917, ' Sao ' =>- 13914, ' se ' =>-13910, ' sen ' =>-13907, ' Seng ' =>-13906, ' sha ' =>-13905, ' Shai ' =>-13896, ' Shan ' =>-13894, ' Shang ' =>-13878, ' Shao ' =>-13870, ' she ' =>-13859, ' shen ' =>-13847, ' Sheng ' =>-13831, ' Shi ' =>-13658, ' Shou ' =>-13611, ' Shu ' =>-13601, ' Shua ' =>-13406, ' Shuai ' =>-13404, ' Shuan ' =>-13400, ' Shuang ' =>-13398, ' Shui ' =>-13395, ' Shun ' =>-13391, ' Shuo ' =>-13387, ' si ' =>-13383, ' song ' =>-13367, ' sou ' =>-13359, ' su ' >-13356, ' Suan ' =>-13343, ' sui ' =>-13340, ' Sun ' =>-13329, ' suo ' =>-13326, ' ta ' =>-13318, ' Tai ' =>- 13147, ' tan ' =>-13138, ' Tang ' =>-13120, ' Tao ' =>-13107, ' te ' =>-13096, ' teng ' =>-13095, ' ti ' =>-13091, ' Tian ' =>-13076, ' Tiao ' =>-13068, ' tie ' =>-13063, ' ting ' =>-13060, ' Tong ' =>-12888, ' tou ' =>-12875, ' tu ' >-12871, ' Tuan ' =>-12860, ' tui ' =>-12858, ' tun ' =>-12852, ' Tuo ' =>-12849, ' wa ' =>-12838, ' Wai ' =>- 12831, ' Wan '=>-12829, ' Wang ' =>-12812, ' Wei ' =>-12802, ' Wen ' =>-12607, ' Weng ' =>-12597, ' wo ' =>-12594, ' Wu ' =>- 12585, ' XI ' =>-12556, ' Xia ' =>-12359, ' Xian ' =>-12346, ' Xiang ' =>-12320, ' Xiao ' =>-12300, ' Xie ' =>-12120 , ' Xin ' =>-12099, ' Xing ' =>-12089, ' Xiong ' =>-12074, ' Xiu ' =>-12067, ' Xu ' =>-12058, ' Xuan ' =>-12039, ' Xue ' =>-11867, ' Xun ' =>-11861, ' ya ' =>-11847, ' Yan ' =>-11831, ' Yang ' =>-11798, ' Yao ' =>-11781, ' ye ' => -11604, ' Yi ' =>-11589, ' Yin ' =>-11536, ' Ying ' =>-11358, ' Yo ' =>-11340, ' Yong ' =>-11339, ' You ' =>-11324, ' Yu ' =>-11303, ' yuan ' =>-11097, ' Yue ' =>-11077, ' Yun ' =>-11067, ' za ' =>-11055, ' Zai ' =>-11052, ' Zan ' => -11045, ' Zang ' =>-11041, ' Zao ' =>-11038, ' ze ' =>-11024, ' Zei ' =>-11020, ' Zen ' =>-11019, ' Zeng ' =>-11018, ' Zha ' =>-11014, ' Zhai ' =>-10838, ' Zhan ' =>-10832, ' Zhang ' =>-10815, ' Zhao ' =>-10800, ' Zhe ' =>-10790, ' Zhen ' =>-10780, ' Zheng ' =>-10764, ' zhi ' =>-10587, ' Zhong ' =>-10544, ' Zhou ' =>-10533, ' Zhu ' =>-10519, ' Zhua ' =>-10331, ' Zhuai ' =>-10329, ' Zhuan ' =>-10328, ' Zhuang ' =>-10322, ' Zhui ' =>-10315, ' Zhun ' =>-10309, ' Zhuo ' >-10307, ' Zi ' =>-10296, ' Zong ' =>-10281, ' Zou ' =>-10274, ' zu ' =>-10270, ' Zuan ' =>-10262, ' Zui ' =>-
    10260, ' Zun ' =>-10256, ' Zuo ' =>-10254);
     /** * encoding Chinese into pinyin * @param string $utf 8Data UTF8 Character Set data * @param string $sRetFormat return format [head: First letter |all: full Pinyin] * @return String */public static function encode ($utf 8Data, $sRetFormat = ' head ') {$sGBK = Iconv (' UTF-8 ', ' GBK ', $
		Utf8data);
		$aBuf = Array ();
			For ($i =0, $iLoop =strlen ($sGBK); $i < $iLoop; $i + +) {$iChr = Ord ($sGBK {$i});
			if ($iChr >160) $iChr = ($iChr <<8) + ord ($sGBK {+ + $i})-65536;
			if (' head ' = = = $sRetFormat) $aBuf [] = substr (Self::zh2py ($ICHR), 0, 1);
		else $aBuf [] = Self::zh2py ($ICHR);
		if (' head ' = = = $sRetFormat) return implode (', $aBuf);
	else return implode (', $aBuf); /** * Chinese to Pinyin (one character at a time) * @param number $iWORD to be processed character Double-byte * @return StRing Pinyin * * private static function zh2py ($iWORD) {if ($iWORD >0 && $iWORD <160) {return Chr ($iWORD); } elseif ($iWORD <-20319| |
		$iWORD >-10247) {return ';
				else {foreach (self::$_amaps as $py => $code) {if ($code > $iWORD) break;
			$result = $py;
		return $result; }}}?> 
The traditional Pinyin conversion processing algorithm is optimized, which is specially designed for the UTF-8 character set. 
 
If you use the GBK or GB2312 character set, just remove the Iconv function, assign it directly, and do not need to convert the line.
 
Not much said, directly on the code, completely open source you take to use directly. If you find it useful, please help keep the author's message when you use it.