391 lines
128 KiB
PHP
Raw Normal View History

2024-08-31 01:03:37 +08:00
<?php
/**
* 将中文编码成拼音;
*
* 纯utf8字库方式;其他方案:utf-8转为gbkgbk中文是按拼音索引的
* 多音字处理[根据上下文词语自动识别; 未在词库中则使用默认(高频的部分省略词库,作为默认拼音)]
*
* Pinyin::get($str,$format=[all|first],$add='');[all|first] 全部拼音|首字母
*/
class Pinyin{
public static function get($str,$format='',$add='',$addAll=''){
static $map = null;
static $mapPoly = null;
$format = $format ? $format : 'all';
$strArr = self::split($str);
$result = '';$len = count($strArr);
$isFirst = $format === 'first';
$chineseIndex = 0;
for($index = 0;$index < $len;$index++){
$char = $strArr[$index];
if(strlen($char) == 1){
$chineseIndex = 0;
$result .= $char;continue;
}
if(!$map){$map = self::map();$mapPoly = self::mapPoly();}
$pinyin = $map[$char];$chineseIndex++;
$addStr = ($chineseIndex == 1)? $addAll.$add :$add;
if(!$pinyin){$result .= $char;continue;}
if(!$mapPoly[$char]){$result .= ($isFirst ? $pinyin[0]:$addStr.$pinyin);continue;}
$charNode = $mapPoly[$char];$mapChar = $charNode[1];
$findWords = $index > 0 ? $mapChar[$strArr[$index-1]]:false; //通过左右相邻字初步筛选;
$findWords = $findWords ? $findWords : $mapChar[$strArr[$index+1]];
if(!$findWords){
$pinyin = $charNode[0];
}else if(count($findWords) == 1 && $findWords[0][1] == 2){
$pinyin = $findWords[0][0];
}else{
$pinyin = $charNode[0];
foreach($findWords as $item){
$strPick = array_slice($strArr,$index - $item[2],$item[1]);
if(implode('',$item[3]) === implode('',$strPick)){
$pinyin = $item[0];break;
}
}
}
$result .= ($isFirst ? $pinyin[0]:$addStr.$pinyin);
}
return $result ? $result:'';
}
public static function encode($str,$format='all',$add=''){
return self::get($str,$format,$add);
}
public static function split($str){
return preg_split("//u",$str,-1,PREG_SPLIT_NO_EMPTY);
}
// 多音字词库; 无声无臭;无臭味;
public static function mapPoly(){
// "落":"luo;lao:落枕,落价;la:落下,出落"
// "落":['luo',{"枕":[['lao',2,0,"落枕",","], ], ...}]
$rows = array(
""=>"a;e:依阿取容,太阿倒持,守正不阿,公正不阿,刚直不阿,刚正不阿,奉公不阿,方正不阿,法不阿贵,倒持泰阿,柴立不阿,阿谀取容,阿谀奉承,阿谀逢迎,阿谀谄媚,阿意取容,阿世媚俗,阿世取容,阿世盗名,阿时趋俗,阿其所好,阿弥陀佛,阿党相为,阿党比周,阿房宫,东阿,阿胶",
""=>"di;ti:入孝出弟,岂弟君子",
""=>"jin;guan:孤独矜寡",
""=>"le;yue:靡靡之乐,礼坏乐崩,礼崩乐坏,钧天广乐,摇滚乐,爵士乐,交响乐,作乐,奏乐,音乐,雅乐,弦乐,西乐,声乐,配乐,民乐,礼乐,乐章,乐音,乐舞,乐团,乐坛,乐师,乐曲,乐器,乐谱,乐迷,乐律,乐户,乐官,乐工,乐歌,乐感,乐府,乐队,乐池,军乐,管乐,鼓乐,哀乐;yao:乐山乐水",
""=>"si;sai:于思",
""=>"cheng;chen:铢两悉称,能不称官,侔色揣称,称体载衣,称体裁衣,称家有无,匀称,相称,配称,对称,称职,称愿,称心,称身",
""=>"xiang;hang:巷道,平巷;xiong:柳巷花街,柳街花巷",
""=>"nan;cai:人才难得",
""=>"du;duo:铢量寸度,昼度夜思,以己度人,审时度势,审己度人,量力度德,揆情度理,揆理度情,鉴影度形,度己以绳,度德量力,揣时度力,称德度功,不可揆度,臆度,审度,窥度,忖度,揣度,测度,裁度,猜度",
""=>"fen;fan:别类分门",
""=>"mai;mo:脉脉",
""=>"mo;ma:摩挲",
""=>"qi;ji:期年",
""=>"shuo;shui:说项,说客,说服;liang:打开天窗说亮话;yue:和颜说色",
""=>"cang;zang:青藏高原,藏红花,西藏,三藏,道藏,大藏,藏族,藏戏,藏青,藏历,藏蓝,宝藏;she:用行舍藏",
""=>"he;ge:朝升暮合",
""=>"zhuan;zhuai:转文",
""=>"niu;ao:违拗,拗口,拗断",
""=>"mi;bi:秘鲁",
""=>"jiao;jue:以宫笑角,埒才角妙,坤角儿,豆角儿,主角,生角,配角,名角,口角,角逐,角色,角力,角斗,旦角,丑角",
""=>"xie;ye:莫邪",
""=>"ba;pa:吃里扒外,扒耳搔腮,扒手,扒窃,扒灰,扒糕",
""=>"che;ju:丢卒保车",
""=>"da;ta:嗒然,嗒丧",
""=>"gan;qian:旋干转坤,涸思干虑,河涸海干,白干",
""=>"lu;lou:暴露文学,露一手,露马脚,泄露,露相,露馅,露怯,露苗,露面,露脸,露骨,露富,露风,露底,露丑,露白",
""=>"qu;ou:老区",
""=>"shi;si:箪食瓢饮,箪食壶酒,箪食壶浆",
""=>"she;yi:委蛇",
""=>"shu;zhu:苍术,白术",
""=>"tang;shang:浩浩汤汤,沸沸汤汤,峨峨汤汤",
""=>"tiao;di:条畅",
""=>"xiang;xieng:虮虱相吊;xing:枝叶相持",
""=>"xue;xie:一针见血,刀刀见血,血淋淋,血糊糊,洒狗血,鸡血石,血晕,吐血,咯血,流血",
""=>"hui;kuai:头会箕赋,会计,财会",
""=>"ye;xie:叶韵",
""=>"bai;bo:柏拉图,柏林;bia:餐松啖柏",
""=>"nong;long:弄堂,弄口,里弄",
""=>"huai;pi:凿坏以遁,凿坏而遁",
""=>"jiang;qiang:将伯之助,将伯之呼,将将,将进酒",
""=>"luo;lao:莲花落,落子,落枕,落价;la:丢三落四,落下,出落",
""=>"wang;ben:追亡逐北",
""=>"du;dou:句读;shu:囊萤照读",
""=>"fo;fu:仿佛",
""=>"jian;xian:图穷匕首见,图穷匕见,尸居龙见,情见势屈,情见力屈,情见乎辞,见素抱朴,间见层出,见世面,互见",
""=>"chan;shan:封禅,禅让",
""=>"chang;zhang:此风不可长,莺飞草长,土生土长,停留长智,水长船高,女长须嫁,女长当嫁,目无尊长,阑风长雨,教学相长,渐不可长,根生土长,辅世长民,长幼尊卑,长幼有叙,长幼有序,长年三老,长虺成蛇,长傲饰非,草长莺飞,傲不可长,敖不可长,司务长,灵长目,列车长,护士长,参谋长,百夫长,总长,茁长,助长,州长,站长,增长,学长,兄长,校长,消长,县长,外长,团长,徒长,庭长,首长,市长,师长,生长,酋长,排长,年长,科长,军长,见长,家长,机长,官长,股长,队长,村长,次长,成长,厂长,长子,长者,长兄,长相,长物,长孙,长势,长上,长亲,长吏,长老,长进,长官,长房,长大,长膘,长辈,部长,班长",
""=>"cha;chai:神差鬼使,鬼使神差,开小差,专差,抓差,支差,邮差,信差,听差,钦差,美差,苦差,解差,交差,兼差,官差,公差,跟差,当差,出差,撤差,差役,差事,差遣,差使,兵差,办差;ci:栉比鳞差,参差",
""=>"da;tai:大璞不完,大子;dai:大夫",
""=>"shu;shuo:数见不鲜,多言数穷,频数",
""=>"zai;cai:称体载衣",
""=>"he;huo:画荻和丸,趁水和泥,和稀泥,软和,热和,暖和,搅和,和弄,和面,搀和,掺和,拌和",
""=>"zha;za:扎染,结扎,包扎",
""=>"bi;bei:胳臂",
""=>"pang;bang:过磅,地磅,磅秤",
""=>"bei;pi:青紫被体,被山带河,被甲执兵,被甲枕戈,被甲据鞍,被甲持兵,被褐怀珠,被褐怀玉,被发左衽,被发缨冠,被发文身",
""=>"kuo;gua:挺括,搜括",
""=>"luo;lao:络子",
""=>"sha;cha:刹那,罗刹,古刹,梵刹,宝刹",
""=>"shi;dan:以升量石,悬石程书",
""=>"dan;shan:单姓;chan:单于",
""=>"you;fu:左宜右有",
""=>"zhong;chong:救寒莫如重裘,坐不重席,重足一迹,重足屏息,重足屏气,重足累息,重足而立,重纸累札,重整旗鼓,重振旗鼓,重垣叠锁,重垣迭锁,重裀列鼎,重岩叠嶂,重岩迭障,重兴旗鼓,重熙累叶,重熙累盛,重熙累洽,重熙累绩,重手累足,重生爷娘,重生父母,重山峻岭,重山复水,重山复岭,重三叠四,重三迭四,重起炉灶,重纰貤缪,重葩累藻,重明继焰,重门击柝,重峦复嶂,重峦叠嶂,重峦叠巘,重峦迭嶂,重峦迭巘,重理旧业,重金袭汤,重金兼紫,重见天日,重迹屏气,重珪叠组,重珪迭组,重规袭矩,重规叠矩,重规累矩,重规迭矩,重规沓矩,重圭叠组,重关击柝,重铬酸钾,重睹天日,重蹈覆辙,重床叠屋,重床叠架,重床迭屋,重床迭架,重操旧业,一重一掩,双足重茧,手足重茧,食不重味,累屋重架,老调重谈,卷土重来,居不重茵,居不重席,旧地重游,昏镜重磨,昏镜重明,规重矩叠,方寸万重,豆重榆瞑,叠矩重规,迭矩重规,沉谋重虑,百舍重趼,百舍重茧,重奏,重重,重圆,重映,重影,重印,重译,重洋,重阳,重演,重修,重行,重新,重霄,重现,重温,重围,重头,重孙,重提,重数,重述,重审,重申,重庆,重拍,重聚,重九,重建,重婚,重合,重光,重复,重逢,重犯,重返,重叠,重弹,重出,重唱,重播,重版,双重,三重,二重",
""=>"bao;pu:大堡礁,土堡,地堡;bu:堡子",
""=>"xin;shen:卬首信眉",
""=>"zhi;shi:释知遗形",
""=>"bao;pu:一暴十寒,暴衣露冠,暴衣露盖,暴腮龙门",
""=>"xing;hang:行行出状元,一目五行,一目数行,寻行数墨,秀出班行,行行蛇蚓,随行就市,泣数行下,欺行霸市,各行各业,当行出色,大行大市,搀行夺市,太行山,大行星,十行,九行,八行,七行,六行,四行,二行,银行,转行,在行,洋行,雁行,行业,行伍,行市,行商,行情,行列,行距,行间,行家,行货,行会,行话,行号,行规,行道,行当,行辈,行帮,外行,同行,跳行,时行,诗行,商行,三行,戎行,农行,内行,粮行,隔行,改行,分行,懂行,成行,本行;heng:道行",
""=>"zu;cu:仓卒",
""=>"bei;po:陂陀",
""=>"yan;ye:幽咽,呜咽,哽咽,抽咽",
""=>"tuo;ta:拓印,拓片,拓本",
""=>"zhao;chao:枵腹终朝,身先朝露,三朝元老,三朝五日,人生朝露,暮想朝思,暮四朝三,暮去朝来,暮鼓朝钟,暮翠朝红,暮爨朝舂,暮楚朝秦,流水朝宗,九间朝殿,江汉朝宗,改朝换姓,改朝换代,匪朝伊夕,返本朝元,断烂朝报,东市朝衣,得胜回朝,丹凤朝阳,朝章国故,朝章国典,朝阳丹凤,朝成暮徧,不讳之朝,班师回朝,百鸟朝凤,百川朝海,朝鲜族,朝堂,朝中,朝里,早朝,在朝,元朝,王朝,退朝,天朝,宋朝,胜朝,上朝,前朝,南朝,明朝,面朝,六朝,临朝,历朝,皇朝,当朝,朝着,朝政,朝野,朝向,朝廷,朝天,朝圣,朝上,朝日,朝觐,朝见,朝贡,朝纲,朝服,朝臣,朝代,朝拜,北朝",
""=>"qi;ji:时运不齐",
""=>"ke;qiao:金蝉脱壳,躯壳,甲壳,地壳",
""=>"jing;ying:灭景追风,急景凋年,顾景惭形",
""=>"lv;shuai:正身率下,整躬率物,适情率意,率由旧章,率由旧则,率以为常,率兽食人,率马以骥,率尔成章,率尔操觚,百兽率舞,率土,直率,真率,相率,统率,坦率,轻率,率直,率真,率性,率然,率领,督率,大率,草率,表率",
""=>"ben;bi:贲临",
""=>"zhe;zhao:八竿子打不着,着三不着两,走为上着,知疼着痒,知疼着热,歪打正着,棋输先着,棋高一着,摸头不着,摸门不着,百下百着,支着儿,这么着,怎么着,阴着儿,说不着,数得着,数不着,那么着,摸不着,干着急,犯得着,犯不着,着数,着迷,着凉,失着,该着,点着;zhuo:着手成春,着人先鞭,枝附叶着,先我着鞭,魂不着体,佛头着粪,当着不着,大处着眼,大处着墨,穿红着绿,吃着不尽,不着疼热,鞭辟着里,着重号,着眼点,软着陆,着意,着边,执着,衣着,吸着,无着,固着,附着,沉着;zhu:着书立说,彰明较着,以微知着,仰屋着书",
""=>"bo;bai:大伯子",
""=>"jie;xie:跑马卖解,解数,解法",
""=>"she;ye:姑射神人,射干",
""=>"po;pai:迫击炮",
""=>"sai;se:昭德塞违,抑塞磊落,茅塞顿开,荆棘塞途,晦盲否塞,顿开茅塞,蔽明塞聪,蔽聪塞明,闭目塞听,闭目塞耳,闭明塞聪,闭门塞户,闭门塞窦,拔本塞源,拔本塞原,挨山塞海,阻塞,语塞,淤塞,壅塞,拥塞,搪塞,栓塞,塞责,塞音,梗塞,哽塞,堵塞,充塞,闭塞",
""=>"ge;ka:咯血",
""=>"diao;tiao:左支右调,众口难调,雨顺风调,瑟弄琴调,瑟调琴弄,饶舌调唇,琴瑟不调,品竹调丝,蜜里调油,胶柱调瑟,风调雨顺,调嘴学舌,调嘴弄舌,调朱弄粉,调朱傅粉,调嘴调舌,调脂弄粉,调丝品竹,调神畅情,调舌弄唇,调三斡四,调三惑四,调三窝四,调墨弄笔,调良稳泛,调风弄月,调风变俗,调词架讼,调唇弄舌,协调,失调,烹调,空调,解调,调资,调准,调治,调制,调整,调匀,调养,调音,调谑,调谐,调协,调笑,调戏,调息,调味,调停,调唆,调适,调试,调摄,调色,调情,调频,调皮,调弄,调料,调理,调侃,调控,调解,调节,调教,调价,调焦,调剂,调级,调护,调和,调合,调光,调羹,调幅,调调,调档,调处,调拨",
""=>"xue;xiao:削皮,切削,尖削,刮削,刀削,车削",
""=>"bo;bao:高义薄云天,西山日薄,帏薄不修,势孤力薄,身微力薄,日薄桑榆,日薄虞渊,轻繇薄赋,轻徭薄税,轻徭薄赋,轻傜薄赋,轻口薄舌,轻赋薄敛,轻薄无知,轻薄无行,轻薄无礼,命薄缘悭,门衰祚薄,厚往薄来,官情纸薄,寡情薄意,根孤伎薄,雕虫薄技,德浅行薄,德薄才鲜,道微德薄,薄情无义,薄唇轻言,瘠薄,厚薄,薄葬,薄纱,薄膜,薄片,薄面,薄脆,薄层,薄薄,薄饼,薄板;bu:对薄公堂",
""=>"de;dei:总得,非得,必得",
""=>"bo;bao:敲骨剥髓,活剥生吞,抽丝剥茧,剥脱,剥皮,剥取,剥壳,剥剥,剥除,毕剥",
""=>"bi;pi:裨将",
""=>"pi;bi:不辟斧钺,鞭辟着里,鞭辟向里,复辟,辟邪,辟谷",
"绿"=>"lv;lu:绿林强盗,绿林豪客,绿林豪士,绿林好汉,绿林豪杰,绿林大盗,鸭绿江",
""=>"huan;hai:还没,还须,还需,摊还,还政,还田,还是,还好,抵还",
""=>"ka;qia:卡脖子,税卡,哨卡,路卡,卡子,卡壳,卡具,关卡,发卡,边卡",
""=>"nei;na:深文周内,鸡内金",
""=>"xiao;jiao:校短量长,犯而不校,校准,校注,校正,校阅,校样,校验,校勘,校核,校改,校对,校订,校点,校场,审校,勘校,参校",
""=>"zhu;zhuo:枝附叶著,一鞭先著,头上著头,水中著盐,视微知著,识微知著,棋输先著,魂不著体,画蛇著足,佛头著粪,执著",
""=>"bian;pian:扁舟",
"便"=>"bian;pian:空腹便便,大腹便便,便宜",
""=>"liao;le:跑了和尚跑不了寺,跑了和尚跑不了庙,一块石头落了地,赔了夫人又折兵,好心做了驴肝肺,好了疮疤忘了痛,拔了萝卜地皮宽,无了无休,无了根蒂,凉了半截,铁了心,好极了,为了,完了,算了,临了,到了,除了",
""=>"ni;niao:屙金溺银,便溺",
""=>"shi;zhi:博闻强识,款识,附识",
""=>"chi;che:工尺",
""=>"de;di:众矢之的,有的放矢,移的就箭,一语中的,一语破的,无的放矢,的一确二,冰解的破,可的松,阿的平,目的,的士,的确,的当,标的",
""=>"qin;qing:亲家",
""=>"zhi;zheng:含商咀徵,含宫咀徵",
""=>"chuan;zhuan:投传而去,树碑立传,圣经贤传,自传,正传,小传,外传,评传,内传,列传,经传,传略,传记,别传",
""=>"ti;di:提溜,提防",
""=>"cong;zong:合从连衡",
""=>"bin;bing:槟榔",
""=>"lun;guan:纶巾",
""=>"dang;cheng:鼎铛有耳,鼎铛玉石,饼铛",
""=>"gei;ji:饔飧不给,日不暇给,人足家给,人给家足,目不暇给,家给人足,家给民足,呼不给吸,自给,仰给,配给,进给,供给,给予,给养,给水,补给",
""=>"zhe;she:折腰五斗,折箭为誓,月中折桂,推枯折腐,深文曲折,曲曲折折,强自取折,千磨百折,攀花折柳,攀蟾折桂,面折庭争,面折廷诤,拉枯折朽,将功折过,桂折一枝,桂折兰摧,规旋矩折,浮收勒折,栋折榱坏,东量西折,鼎折餗覆,鼎折覆餗,得马折足,榱栋崩折,榱崩栋折,朝折暮折,朝攀暮折,折衷,折损,折辱,折耗,折堕,折秤,折本,屈折",
""=>"jing;geng:脖颈",
""=>"bo;po:血泊,湖泊,泊地",
""=>"bo;bai:金翅擘海",
""=>"bu;bo:握粟出卜,萝卜",
""=>"bu;fou:以不济可",
""=>"jue;jiao:一觉,午觉,睡觉,困觉",
""=>"zeng;ceng:曾无与二,曾几何时,得未曾有,曾经,似曾,不曾",
""=>"shu;zhu:属垣有耳,属毛离里,属辞比事,属词比事,波属云委,波骇云属,比物属事",
""=>"ze;zhai:择席,择菜",
""=>"can;shen:曾参杀人,月没参横,月落参横,日月参辰,扪参历井,斗转参横,参横斗转,参回斗转,参辰卯酉,参辰日月,西洋参,高丽参,沙参,人参,苦参,海参,党参,丹参,参商;cen:参伍错综,参错,参差",
""=>"sha;she:飞沙走砾",
""=>"jie;xie:颉颃",
""=>"cang;chen:寒伧",
""=>"jin;jing:贞松劲柏,清风劲节,强弓劲弩,陵劲淬砺,高风劲节,死劲儿,雄劲,遒劲,强劲,劲直,劲射,劲旅,劲风,劲敌,劲吹,劲草,刚劲,苍劲",
""=>"jie;gai:芥蓝",
""=>"ze;shi:振兵泽旅",
""=>"ping;bing:屏声息气,屏息,屏退,屏弃,屏气,屏除",
""=>"chi;shi:钥匙",
""=>"chan;zhan:冷颤,寒颤,打颤,颤栗",
""=>"sheng;cheng:盛水不漏",
""=>"mei;mo:月没参横,头没杯案,头出头没,神出鬼没,没衷一是,没没无闻,没金饮羽,赍志而没,击排冒没,没奈何,湮没,淹没,吞没,辱没,泯没,没药,没收,没世,没入,没落,没齿,埋没,沦没,浸没,籍没,汩没,覆没,出没,沉没",
""=>"chao;zhao:嘲哳",
""=>"hong;gong:女红",
""=>"wei;yi:马尾",
""=>"du;dou:一身都是胆,吁咈都俞,研京练都,通邑大都,通都巨邑,通都大埠,三徙成都,清都紫微,清都紫府,清都绛阙,冥漠之都,鸿都买第,洪都拉斯,都俞吁咈,长鸣都尉,都柏林,昌都县,中都,全都,乐都,都会",
""=>"pu;piao:姓朴;po:朴硝,厚朴",
""=>"cheng;deng:红澄澄,澄沙",
""=>"qiang;jiang:倔头强脑,外强,强嘴,倔强",
""=>"suo;su:缩砂密",
""=>"miu;mou:绸缪",
""=>"e;wu:众好众恶,以大恶细,痛深恶绝,同恶相助,同恶相恤,深恶痛疾,深恶痛绝,深恶痛嫉,善善恶恶,好逸恶劳,好佚恶劳,好善恶恶,恶紫夺朱,恶醉强酒,恶湿居下,恶居下流,恶恶从短,恶不去善,爱生恶死,憎恶,厌恶,羞恶,嫌恶,痛恶,可恶,交恶,好恶;er:鬼怕恶人;le:溢美溢恶",
""=>"chou;xiu:无声无臭,无伤无臭,臭味相投,乳臭",
""=>"qi;ji:飞将数奇,奇函数,奇数,奇偶,奇零",
""=>"quan;juan:圈牢养物,羊圈,畜圈,棚圈,马圈,垫圈",
""=>"dan;tan:以珠弹雀,一弹指顷,随珠弹雀,隋珠弹雀,品竹弹丝,明珠弹雀,击石弹丝,古调单弹,古调不弹,弹指之间,弹丸脱手,弹丝品竹,弹空说嘴,弹斤估两,弹剑作歌,吹拉弹唱,弹吉他,弹冠,轻弹,弹琴,重弹,评弹,抨弹,乱弹,回弹,弹性,弹射,弹词,吹弹",
""=>"zi;ci:白不呲咧",
""=>"qian;jian:浅浅",
""=>"cuo;zuo:一撮",
""=>"hang;ben:心拙口夯",
""=>"jiao;jue:嚼墨喷纸,咀嚼,大嚼",
""=>"xi;ji:悬龟系鱼,红绳系足,赤绳系足,长绳系日,系铃,系绳,系带,系泊",
""=>"dan;tan:澹台",
""=>"dao;tao:叨在知己,叨陪末座,叨扰,叨光",
""=>"chui;zhui:椎髻布衣,悬鼓待椎,十夫楺椎,十夫桡椎,顿足椎胸,大路椎轮,大辂椎轮,腰椎,胸椎,脊椎,骶椎",
""=>"he;hu:核儿",
""=>"jiang;xiang:一物降一物,降妖捉怪,降龙伏虎,拱手而降,伏虎降龙,招降,诈降,诱降,投降,受降,劝降,求降,请降,乞降,纳降,降伏,归降",
""=>"zhuo;zuo:琢磨",
""=>"she;nie:追风摄景",
""=>"pa;ba:钉齿耙,耥耙,耙地",
""=>"dong;tong:倥侗",
""=>"xia;he:威吓,恐吓,恫吓",
""=>"mo;mu:装模作样,一模一样,人模狗样,字模,木模,模子,模样,模具,模板,锻模",
""=>"dun;dui:朱槃玉敦,朱盘玉敦",
""=>"me;yao:挑么挑六",
""=>"zan;za:咱家,多咱",
""=>"duo;hui:百堕俱举",
"尿"=>"niao;sui:尿泡,尿脬",
""=>"nuo;na:雅典娜",
""=>"fan;pan:番禺",
""=>"zhi;shi:骨殖",
""=>"sheng;xing:昏定晨省,晨昏定省,不省,日省,三省,自省,省悟,省视,省亲,省察,深省,内省,归省,反省",
""=>"mi;bi:泌阳",
""=>"ni;nie:泥而不滓",
""=>"zhao;zhua:爪尖儿,爪子,爪儿",
""=>"fou;pi:泰来否往,泰极而否,晦盲否塞,否终则泰,否终复泰,否往泰来,否去泰来,否极阳回,否极泰来,否极泰回,臧否",
""=>"jia;gu:余勇可贾,炫玉贾石,南贩北贾,多钱善贾,多财善贾,行贾,巨贾,贾人,贾祸",
""=>"jia;qie:伽蓝;ga:伽马射线",
""=>"zhi;zi:吱扭",
""=>"ke;hai:咳声叹气,百日咳,咳咳",
""=>"ha;ge:雕蚶镂蛤,文蛤,蛤蜊,蛤蚧,蛤粉",
"宿"=>"su;xiu:宿雨餐风,宿水飡风,宿水餐风,硕望宿德,水宿山行,水宿风餐,霜行草宿,深仇宿怨,山行海宿,栖风宿雨,老师宿儒,二十八宿,一宿,星宿",
""=>"zha;shan:栅极,水栅,木栅,栏栅,光栅",
""=>"chu;xu:养精畜锐,仰事俯畜,畜妻养子,畜养,畜牧,畜产",
""=>"quan;xuan:拱券",
""=>"lou;lv:指不胜偻,伛偻",
""=>"qian;pian:颓垣断堑",
""=>"gou;ju:枸橼",
""=>"lu;liu:碌碡",
""=>"man;wan:抱蔓摘瓜,枝蔓,藤蔓,瓜蔓",
""=>"gua;gu:呱呱",
""=>"xian;qian:扯纤拉烟,纤绳,纤手,纤夫,拉纤",
""=>"gui;jun:龟裂",
""=>"xie;jia:挟主行令,挟势弄权",
""=>"si;shi:似的",
""=>"bang;beng:蚌埠市",
""=>"he;hao:貉绒",
""=>"qian;yan:铅山",
""=>"shao;tiao:苕帚",
""=>"xu;yu:吁天呼地,吁咈都俞,呼天吁地,吁求,吁请,呼吁",
""=>"ni;ne:制服呢,线呢",
""=>"ji;qi:稽首",
""=>"si;ci:伺候",
""=>"que;qiao:雀子,家雀",
""=>"jiao;chao:剿袭",
""=>"mai;man:埋天怨地,埋三怨四,埋怨",
""=>"cuan;zan:攒眉苦脸,百虑攒心,攒竹,攒攒,攒钱,积攒",
""=>"ji;qi:捱风缉缝",
""=>"shi;shen:什么",
""=>"jian;qian:犍为",
""=>"jiao;yao:离本徼末",
""=>"jie;qi:深厉浅揭",
""=>"jie;ji:人言藉藉,饿殍枕藉,狼藉",
""=>"liang;jing:靓妆",
""=>"zi;zai:歌仔戏,打工仔,牛仔,马仔,靓仔",
""=>"jie;ju:橙黄桔绿",
""=>"jun;juan:隽永",
""=>"xue;jue:可发一噱",
""=>"ka;ga:咖喱",
""=>"gang;kang:扛长工,扛起,扛活",
""=>"keng;hang:引吭高声,引吭高歌,引吭高唱,引吭悲歌,批吭捣虚,捣虚批吭;gang:扼吭拊背,扼吭夺食",
""=>"la;xi:厚味腊毒",
""=>"liang;lang:莨菪",
""=>"liao;lao:潦原浸天",
""=>"lao;luo:炮烙",
""=>"ju;qie:趔趄",
""=>"mang;meng:愚氓,群氓",
""=>"zhou;yu:群雌粥粥",
""=>"jian;kan:雕楹碧槛,门槛",
""=>"mi;mei:积谗糜骨,糜子",
""=>"min;meng:黾穴鸲巢",
""=>"mo;ma:抹脸,抹布",
""=>"mo;mu:岁聿其莫",
""=>"mou;mu:释迦牟尼",
""=>"na;nei:哪会儿,哪些,哪个;ne:哪吒",
""=>"na;nei:那些",
""=>"shang;chang:裂裳裹足,掎裳连袂,毁冠裂裳,颠倒衣裳,倒裳索领,霓裳",
""=>"nve;yao:疟子",
""=>"pao;bao:刨子,刨刀,刨床,刨冰",
""=>"bi;pi:睥睨一切",
""=>"pu;bao:曝光",
""=>"qi;shi:追趋逐耆",
""=>"qi;kai:岂弟君子",
""=>"shi;zhi:月氏",
""=>"shan;dan:膻中",
""=>"shen;chen:沈博绝丽",
""=>"shi;zhe:蝎蝎螫螫",
""=>"yao;yue:北门管钥,抱关执钥,锁钥",
""=>"tang;chang:倘佯",
""=>"tui;tun:褪去",
""=>"ju;qu:苣荬菜",
""=>"wo;o:喔唷",
""=>"yan;a:腌臜",
""=>"yuan;yan:芫荽",
""=>"yin;yan:殷红",
""=>"zhou;you:柚木",
""=>"ze;zha:咋呼;za:鼓唇咋舌",
""=>"zhe;zhei:这些",
""=>"huan;yuan:破觚为圜",
""=>"zhi;zu:进退跋疐;shu:流离颠疐;mao:前跋后疐",
""=>"feng;ping:暴虎冯河",
""=>"xie;jie:渊清玉絜,材茂行絜",
""=>"kui;gui:石室金匮,金匮石室",
""=>"zha;cha:嘁哩喀喳,啛啛喳喳",
""=>"piao;fu:葭莩之亲",
""=>"ti;zhai:擿植索涂,擿埴索涂,擿埴索途;zhi:冥行擿埴",
""=>"meng;mang:尨眉皓发",
""=>"gui;xue:剑头一吷",
""=>"yi;die:泆荡",
""=>"jiao;zhuo:鱼游燋釜",
""=>"zu;fan:飘籓坠溷",
""=>"jun;qun:麇至沓来",
""=>"li;ni:儗非其伦",
""=>"yi;shi:神龙失埶,审曲面埶,情见埶竭",
""=>"ting;ding:铤鹿走险",
""=>"wei;men:亹源"
);
$map = array();
foreach($rows as $char=>$row) {
$rowArr = explode(';',$row);
$mapChar = array();
if(!$rowArr[0]){continue;}
foreach ($rowArr as $i=>$words){
if($i == 0) continue;
$wordsArr = explode(':',$words);//lao:落枕,落价
if(count($wordsArr) != 2) continue;
$wordsValueArr = explode(',',$wordsArr[1]);
foreach($wordsValueArr as $word){
if(!$word) continue;
$strArr = self::split($word);
$indexAt = array_search($char,$strArr);
$charNear= $indexAt == 0 ? $strArr[1]:$strArr[$indexAt - 1];//右侧或左侧;
if(!$mapChar[$charNear]){$mapChar[$charNear] = array();}
$mapChar[$charNear][] = array($wordsArr[0],count($strArr),$indexAt,$strArr,$word);
}
}
$map[$char] = array($rowArr[0],$mapChar);
}
return $map;
}
// 汉字拼音数据;
public static function map(){
$data = 'yi:,,,,,,,亿,,,,,,伿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,羿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,驿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,㺿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,䭿,,,,,,,,|ding:,,,,,,嵿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,㴿,|kao:,,,,,,,,,,,,,,,,,|qi:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,榿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,諿,,,,,,,,,,,,,,,,,,,,,,,,,,,,鬿,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|shang:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|xia:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|mu:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|wan:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<EFBFBD><EFBFBD>
$rows = explode('|', $data);
$map = array();
foreach($rows as $v) {
list($py, $vals) = explode(':', $v);
$chars = explode(',', $vals);
foreach ($chars as $char) {
$map[$char] = $py;
}
}
return $map;
}
}