391 lines
128 KiB
PHP
391 lines
128 KiB
PHP
![]() |
<?php
|
|||
|
|
|||
|
/**
|
|||
|
* 将中文编码成拼音;
|
|||
|
*
|
|||
|
* 纯utf8字库方式;其他方案:utf-8转为gbk,gbk中文是按拼音索引的
|
|||
|
* 多音字处理[根据上下文词语自动识别; 未在词库中则使用默认(高频的部分省略词库,作为默认拼音)]
|
|||
|
*
|
|||
|
* 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;
|
|||
|
}
|
|||
|
}
|