Yii2 Chinese character to PinYin example code, yii2 Chinese character to PinYin example
Class core code:
<? Phpnamespace mobile \ models; use Yii; use yii \ base \ Model; /*** convert Chinese characters to PinYin * @ property integer */class SpellModel extends Model {/*** pinyin character conversion chart * @ var array */private static $ _ aMaps = array (& apos; a & apos; = & apos;-20319 & apos, 'ai' =>-20317, 'A' =>-20304, 'ang '=>-20295, 'ao' =>-20292, 'ba' =>-20283, 'ba' =>-20265, 'Ban' =>-20257, 'bang' =>-20242, 'Bao' =>-20230, 'bei' =>-20051, 'ben' =>-20036, 'beng' =>-20032, 'bi' =>-20026, 'bian '=>-20002, 'biao' =>-19990, 'bin' =>-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, 'chunao' =>-19540, 'ch' =>-19531, 'chen' =>-19525, 'cheng' =>-19515, 'chi '=>-19500, 'chong' =>-19484, 'chou' =>-19479, 'chu' =>-19467, 'chuai' =>-19289, 'shanghai' =>-19288, 'shanghai' =>-19281, 'shanghai' =>-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, 'di' =>-18952, 'ding' =>-18783, 'diu' =>-18774, 'dong' =>-18773, 'dou' =>-18763, 'du' =>-18756, 'duany' =>-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, 'guany' =>-17961, 'guang '=>-17950, 'GU' =>-17947, 'gun' =>-17931, 'guo' =>-17928, 'ha' =>-17922, 'hai' =>-17759, 'han' =>-17752, 'hang' =>-17733, 'hao' =>-17730, 'hes' =>-17721, 'hei' =>-17703, 'hangzhou' =>-17701, 'hangzhou' =>-17697, 'Hong '=>-17692, 'hou' =>-17683, 'hu' =>-17676, 'hua' =>-17496, 'huai' =>-17487, 'huany' =>-17482, 'huangt' =>-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, 'jun' =>-16647, 'CA' =>-16474, 'Kai' =>-16470, 'kan' =>-16465, 'hang' =>-16459, 'kako' =>-16452, 'ke' =>-16448, 'ken' =>-16433, 'keng' =>-16429, 'kong' =>-16427, 'kou' =>-16423, 'ku '=>-16419, 'kua' =>-16412, 'kuai' =>-16407, 'kuance' =>-16403, 'kuang '=>-16401, 'kuai' =>-16393, 'kun' =>-16220, 'kuo' =>-16216, & apos; la & apos; = & apos;-16212, & apos;-16205, & apos; lai & apos; = & apos;-16202, & apos; lan & apos; = & apos;-16187, & apos;-16180, 'le' =>-16171, 'lei' =>-16169, 'leng' =>-16158, 'lil' =>-16155, 'lil' =>-15959, 'liany' =>-15958, 'lilang' =>-15944, 'liao' =>-15933, 'lil' =>-15920, 'lin' =>-15915, 'ling' =>-15903, 'Liu '=>-15889, 'long' =>-15878, 'loud' =>-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, 'miany' =>-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, 'ni' =>-15117, 'nin' =>-15110, 'nin' =>-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, 'pem' =>-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, 'quany' =>-14170, 'que' =>-14159, 'qun' =>-14151, 'run' =>-14149, 'Rang '=>-14145, 'rao' =>-14140, 'Re' =>-14137, 'ren' =>-14135, 'reng' =>-14125, 'ri' =>-14123, 'rong '=>-14122, 'rou' =>-14112, 'rule' =>-14109, 'rule' =>-14099, 'rui '=>-14097, 'run' =>-14094, 'ruo' =>-14092, 'sa' =>-14090, 'sai '=>-14087, 'san' =>-14083, 'shanghai' =>-13917, 'sao' =>-13914, 'se' =>-13910, 'sen' =>-13907, 'seng' =>-13906, 'sha' =>-13905, 'shai' =>-13896, 'shance' =>-13894, 'shang '=>-13878, 'shao' =>-13870, 'shanghai' =>-13859, 'shen' =>-13847, 'sheng' =>-13831, 'shi' =>-13658, 'shou' =>-13611, 'shu' =>-13601, 'shua '=>-13406, 'shuai' =>-13404, 'shuany' =>-13400, 'shanghai' =>-13398, 'shanghai' =>-13395, 'shanghai' =>-13391, 'shanghai' =>-13387, 'si' =>-13383, 'png' =>-13367, 'sou' =>-13359, 'su' =>-13356, 'suan' =>-13343, 'sui' =>-13340, 'sun' =>-13329, 'suo' =>-13326, 'Ta' =>-13318, 'tai' =>-13147, 'tan' =>-13138, 'shanghai' =>-13120, 'Tao' =>-13107, 'te' =>-13096, 'teng' =>-13095, 'ti' =>-13091, 'tiance' =>-13076, 'tiao' =>-13068, 'tie '=>-13063, 'ting' =>-13060, 'tong' =>-12888, 'tou' =>-12875, 'tu' =>-12871, 'tuany' =>-12860, 'tuis '=>-12858, 'tn' =>-12852, 'tuo' =>-12849, 'wa '=>-12838, 'wai' =>-12831, 'wan' =>-12829, 'wang '=>-12812, 'wei' =>-12802, 'wen' =>-12607, 'weng' =>-12597, 'wo' =>-12594, 'wu' =>-12585, 'xi' =>-12556, 'CIA' =>-12359, 'xian '=>-12346, 'xiang' =>-12320, 'xiao' =>-12300, 'xie' =>-12120, 'sin' =>-12099, 'x' =>-12089, 'xiong' =>-12074, 'xiu' =>-12067, 'xu '=>-12058, 'xua' =>-12039, 'xue' =>-11867, 'xun '=>-11861, 'ya' =>-11847, 'any' =>-11831, 'yang' =>-11798, 'yunao' =>-11781, 'day' =>-11604, 'yi' =>-11589, 'in' =>-11536, 'in' =>-11358, 'yo' =>-11340, 'yong '=>-11339, 'you' =>-11324, 'yu' =>-11303, 'yuanyuan '=>-11097, 'yue' =>-11077, 'yun' =>-11067, 'za '=>-11055, 'zai' =>-11052, 'zany' =>-11045, 'zang' =>-11041, 'zao' =>-11038, 'ze' =>-11024, 'zei' =>-11020, 'zn' =>-11019, 'zeng' =>-11018, 'zha' =>-11014, 'zhai' =>-10838, 'zhan' =>-10832, 'zhang' =>-10815, 'zhao' =>-10800, 'zhes' =>-10790, 'zhen' =>-10780, 'zheng' =>-10764, 'zhi' =>-10587, 'zhong' =>-10544, 'zhou' =>-10533, 'zhu' =>-10519, 'zhua' =>-10331, 'zhuai' =>-10329, 'zhuany' =>-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);/*** encode Chinese characters into pinyin * @ param string $ utf8Data utf8 Character Set Data * @ param string $ sRetFormat return format [head: initial letter | all: pinyin] * @ return string */public static function encode ($ utf8Data, $ 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),); else $ aBuf [] = self: zh2py ($ iChr);} if ('head' ===$ sRetFormat) return implode ('', $ aBuf); else return implode ('', $ aBuf);}/*** convert Chinese to PinYin (one character each time) * @ param number $ iWORD dual-byte characters to be processed * @ 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 ;}}}
Example:
// Select the city public function actionCity () {$ parameters = '"requestType": 0'; $ PortData = Interfaces: Connections ('city/addresslist', true, Interfaces :: montage ($ parameters); $ PortData = json_decode ($ PortData, true ); // popular cities $ model ['toplist'] = isset ($ PortData ['toplist'])? $ PortData ['toplist']: []; // all cities $ dataList = isset ($ PortData ['toplist'])? $ PortData ['datalist']: []; $ model ['citylist'] = []; if (! Empty ($ dataList) {foreach ($ dataList as $ key => $ value) {$ spell = mobile \ models \ SpellModel :: encode ($ value ['name']); $ spell = mb_substr ($ spell, 0, 1); if (! Empty ($ spell) $ model ['citylist'] [$ spell] [] = $ value;} ksort ($ model ['citylist']); // sort} return $ this-> render ('city', ['model' => $ model,]);}
As follows:
The above is an example code for converting Yii2 Chinese characters to pinyin. I hope it will help you. If you have any questions, please leave a message and I will reply to you in a timely manner. Thank you very much for your support for the help House website!