在 PHP 中用描点法“绘制”中文
- 格式:pdf
- 大小:104.50 KB
- 文档页数:8
PHP获取汉字笔画数功能【测试可⽤】本⽂实例讲述了PHP获取汉字笔画数功能。
分享给⼤家供⼤家参考,具体如下:⽆意中看到这么个东西,⽤PHP得到汉字的笔画数。
以类的⽅式实现,有那么点意思,先留下了。
<?phpclass bihua{var $data;var $dataIndex;var $dataSpecial;var $tone;var $head;var $format;var $foot;function setTone($tone){$this->tone=$tone;}function setFormat($head, $format, $foot){$this->head=$head;$this->format=$format;$this->foot=$foot;}function find($str, $isFirst=true){for ($i=0;$i<36;$i++){for ($j=0;$j<5;$j++){$index=strstr($this->data[$i][$j], $str);if (!($index===false)&&($index%2==0))return ($i+1);//($i+1).($isFirst?$this->dataIndex[$j]:"")}}return " ";}function render($str, $ascii=false){if ($ascii)return str_replace("%1", $str, str_replace("%2", $str, $this->format));$bihua=strstr($this->dataSpecial, $str." ")?$str:$this->find($str." ", $this->tone);return str_replace("%1", $str, str_replace("%2", $bihua, $this->format));}function parse($str){$output="";$length=strlen($str);$output.=$this->head;for ($i=0;$i<$length;++$i){if ($i==$length-1){$output.=$this->render($str[$i], true);break;}$code1=ord($str[$i]);$code2=ord($str[$i+1]);if ($code1==0x0D&&$code2==0x0A){$output.=$this->foot;$output.=$this->head;++$i;}else if ($code1>=0x81&&$code1<=0xFE&&$code2>=0x40&&$code2<=0xFE&&$code2!=0x7F){$output.=$this->render($str[$i].$str[$i+1]);++$i;}else$output.=$this->render($str[$i], true);}$output.=$this->foot;return $output;}function bihua(){$this->tone=true;$this->head="";$this->format="";$this->foot="%2%1";$this->dataIndex=array("⼀", "⼁", "⼃", "⼂", "乛");$this->dataSpecial="!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq $this->data[0][0]="⼀ ";$this->data[0][4]="⼄ ";$this->data[1][0]="⼆⼗丁⼚七 ";$this->data[1][1]="⼘ ";$this->data[1][2]="⼋⼈⼊乂⼉九⼔⼏ ";$this->data[1][4]="刁了乃⼑⼒⼜乜 ";$this->data[2][0]="三⼲亍于亏⼠⼟⼯才下⼨丈⼤兀与万⼷ ";$this->data[2][1]="上⼩⼝⼭⼱ ";$this->data[2][2]="千乞川亿⼻个么久勺丸⼣凡及 ";$this->data[2][3]="⼴亡门丫义之 ";$this->data[2][4]="⼫已巳⼸⼰卫孑⼦孓也⼥飞刃习叉马乡⼳ ";$this->data[3][0]="丰王井开亓夫天元⽆韦云专丐扎廿艺⽊五⽀厅卅不仄太⽝区历友⽍尤匹厄车巨⽛屯⼽⽐互切⽡ ";$this->data[3][1]="⽌少⽈⽇中贝内⽔冈见 ";$this->data[3][2]="⼿午⽜⽑⽓壬升夭长仁仃什⽚仆仉化仇币仂仍仅⽄⽖反兮刈介⽗⽘从仑今凶分乏公仓⽉⽒勿风⽋丹匀乌勾⽎凤 ";$this->data[3][3]="卞六⽂亢⽅闩⽕为⽃忆计订户讣认讥冗⼼ ";$this->data[3][4]="尹尺夬引丑⽙巴孔队办以允邓予劝双书⽏幻 ";$this->data[4][0]="⽟刊末未⽰击邗戋打巧正扑卉扒邛功扔去⽢世艾艽古节艿本术札可叵匝丙左厉丕⽯右布夯龙戊平灭轧东匜劢 ";$this->data[4][1]="卡北占凸卢业旧帅归⽬旦且叮叶甲申号电⽥由卟叭只央史叱叽兄叼叩叫叻叨另叹冉⽫凹囚四 ";$this->data[4][2]="⽣失⽮氕乍⽲仨仕丘付仗代仙仟仡仫伋们仪⽩仔他仞斥卮⽠乎丛令⽤甩印氐乐尔句匆犰册卯犯外处冬鸟务刍包饥 ";$this->data[4][3]="主市庀邝⽴冯邙⽞闪兰半汀汁汇头汈汉忉宁⽳宄它讦讧讨写让礼讪讫训必议讯记永 ";$this->data[4][4]="司尻尼民弗弘阢出阡辽奶奴尕加召⽪边孕发圣对弁台⽭纠驭母幼丝 ";$this->data[5][0]="匡⽾邦玎玑式迂刑邢戎动圩圬圭扛寺吉扣扦圪考托圳⽼圾巩执扩圹扪扫圯圮地扬场⽿芋芏共芊芍芨芄芒亚芝芎芑芗朽朴机权过亘⾂吏再协西压厌厍戌在百有存⽽页匠夸夺夼灰达戍尥列死成 $this->data[5][1]="此乩贞师尘尖劣光当吁早吐吓旯曳⾍曲团同吕吊吃因吸吗吆屿屹岌帆岁回岂屺则刚⽹⾁凼囝囡 ";$this->data[5][2]="钆钇年朱⽸氘氖牝先丢廷⾆⽵迁乔迄伟传乒乓休伍伎伏伛优⾅伢伐仳延佤仲仵件任伤伥价伦份伧华仰伉仿伙伪伫⾃伊⾎向囟似后⾏甪⾈全会杀合兆企汆氽众爷伞创刖肌肋朵杂夙危旬旭旮旨 $this->data[5][3]="冱壮冲妆冰庄庆亦刘齐交次⾐产决亥邡充妄闭问闯⽺并关⽶灯州汗污江汕汔汲汐汛汜池汝汤汊忖忏忙兴宇守宅字安讲讳讴军讵讶祁讷许讹论讼农讽设访诀 ";$this->data[5][4]="⾀寻那⾉厾迅尽导异弛阱阮孙阵阳收阪阶阴防丞奸如妁妇妃好她妈戏⽻观牟欢买纡红纣驮纤纥驯纨约级纩纪驰纫巡 ";$this->data[6][0]="寿玕弄玙麦玖玚玛形进戒吞远违韧运扶抚坛抟技坏抔抠坜扰扼拒找批扯址⾛抄汞坝贡攻⾚圻折抓扳坂抡扮抢扺孝坎坍均坞抑抛投抃坟坑抗坊抖护壳志扭块抉声把报拟抒却劫毐芙芫芜苇邯芸 $this->data[6][1]="邶忐芈步卤卣邺坚肖旰旱盯呈时吴呋助县⾥呓呆吱吠呔呕园呖呃旷围呀吨旸吡町⾜虬邮男困吵串呙呐呗员听吟吩呛吻吹呜吭吣吲吼⾢吧囤别吮岍帏岐岖岈岗岘帐岑岚兕财囵囫 ";$this->data[6][2]="钉针钊钋钌迕氙氚牡告我乱利秃秀私岙每佞兵邱估体何佐伾佑攸但伸佃佚作伯伶佣低你佝佟住位伴佗⾝皂伺佛伽囱近彻役彷返佘余希佥坐⾕孚妥⾘含邻坌岔肝肟肛肚肘肠邸龟甸奂免劬狂犹 $this->data[6][3]="⾔冻状亩况亨庑床庋库庇疔疖疗吝应冷这庐序⾟肓弃冶忘闰闱闲闳间闵闶闷羌判兑灶灿灼炀弟沣汪沅沄沐沛沔汰沤沥沌沘沏沚沙汩汨汭汽沃沂沦汹汾泛沧沨沟没汴汶沆沩沪沈沉沁泐怃忮怀 $this->data[6][4]="君灵即层屁屃尿尾迟局改张忌际陆阿孜陇陈阽阻阼附坠陀陂陉妍妩妓妪妣妙妊妖妗姊妨妫妒妞姒妤努邵劭忍刭劲甬邰矣鸡纬纭驱纯纰纱纲纳纴纵驳纶纷纸纹纺纻驴纽纾 ";$this->data[7][0]="奉玩玮环玡武青责现玫玠玢玥表玦甙盂忝规匦抹卦邽坩坷坯拓垅拢拔抨坪拣拤拈坫垆坦担坤押抻抽拐拃拖拊者拍顶坼拆拎拥抵坻拘势抱拄垃拉拦幸拌拧坨坭抿拂拙招坡披拨择拚抬拇坳拗耵 $this->data[7][1]="⾮叔歧肯齿些卓虎虏肾贤尚盱旺具昊昙果味杲昃昆国哎咕昌呵咂畅呸昕明易咙昀昂旻昉炅咔畀虮迪典固忠咀呷呻黾咒咋咐呱呼呤咚鸣咆咛咏呢咄呶咖呦咝岵岢岸岩帖罗岿岬岫帜帙帕岭岣峁$this->data[7][2]="钍钎钏钐钓钒钔钕钗邾制知迭氛迮垂牦牧物乖刮秆和季委竺秉迤佳侍佶岳佬佴供使侑佰侉例侠臾侥版侄岱侦侣侗侃侧侏凭侨侩佻佾佩货侈侪佼依佯侬帛卑的迫⾩侔质欣郈征徂往爬彼径所舍 $this->data[7][3]="冽变京享冼庞店夜庙府底庖疟疠疝疙疚疡剂卒郊兖庚废净妾盲放於刻劾育氓闸闹郑券卷单炜炬炖炒炝炊炕炎炉炔沫浅法泔泄沽沭河泷沾泸沮泪油泱泅泗泊泠泜泺泃沿泖泡注泣泫泮泞沱泻泌 $this->data[7][4]="建肃⾪录帚屉居届刷鸤屈弧弥弦承孟陋戕陌孤孢陕亟降函陔限卺妹姑姐妲妯姓姗妮始帑弩孥驽姆虱迦迢驾叁参迨艰线绀绁绂练驵组绅细驶织驷驸驹终绉驺驻绊驼绋绌绍驿绎经骀贯甾 ";$this->data[8][0]="砉耔契贰奏春帮珏珐珂珑玷玳珀顸珍玲珊珉珈玻毒型韨拭挂封持拮拷拱垭挝垣项垮挎垯挞城挟挠垤政赴赵赳贲垱挡拽垌哉垲挺括挢埏郝垍垧垢拴拾挑垛指垫挣挤垓垟拼垞挖按挥挦挪垠拯拶 $this->data[8][1]="⾲背战觇点虐临览竖尜省削尝哐昧眄眍盹是郢眇眊盼眨昽眈哇咭哄哑显冒映禺哂星昨咴曷昴咧昱昵咦哓昭哔畎畏毗趴呲胄胃贵畋畈界虹虾虼虻蚁思蚂盅咣虽品咽骂哕剐郧勋咻哗囿咱咿响哌 $this->data[8][2]="钘钙钚钛钝钞钟钡钠钢钣钤钥钦钧钨钩钪钫钬钭钮钯卸缸拜看矩矧毡氡氟氢牯怎郜牲选适秕秒⾹种秭秋科重复竽竿笈笃俦段俨俅便俩俪叟垡贷牮顺修俏俣俚保俜促俄俐侮俭俗俘信皇泉皈⿁ $this->data[8][3]="峦弯孪娈将奖哀亭亮庤度弈奕迹庭庥疬疣疥疭疮疯疫疢疤庠咨姿亲竑⾳彦飒帝施闺闻闼闽闾闿阀阁阂差养美羑姜迸叛送类籼迷籽娄前酋⾸逆兹总炳炻炼炟炽炯炸烀烁炮炷炫烂烃剃洼洁洱洪 $this->data[8][4]="郡垦退既屋昼咫屏屎弭费陡逊牁眉胥孩陛陟陧陨除险院娃姞姥娅姨娆姻姝娇姚姽姣姘姹娜怒架贺盈怼羿勇炱怠癸蚤柔矜垒绑绒结绔骁绕骄骅绗绘给绚彖绛络骆绝绞骇统骈 ";$this->data[9][0]="耕耘耖耗耙艳挈恝泰秦珥珙顼珰珠珽珩珧珣珞琤班珲敖素匿蚕顽盏匪恚捞栽捕埔埂捂振载赶起盐捎捍埕捏埘埋捉捆捐埚埙损袁挹捌都哲逝耆耄捡挫捋埒换挽贽挚热恐捣垸壶捃捅盍埃挨耻耿 $this->data[9][1]="剕龀柴桌鸬虔虑监紧逍党眬唛逞晒晟眩眠晓眙唝哧哳哮唠鸭晃哺哽唔晔晌晁剔晏晖晕鸮趵趿畛蚌蚨蚜蚍蚋蚬畔蚝蚧蚣蚊蚪蚓哨唢哩圃哭圄哦唣唏恩盎唑鸯唤唁哼唧啊唉唆帱崂崃罡罢罟峭峨 $this->data[9][2]="钰钱钲钳钴钵钷钹钺钻钼钽钾钿铀铁铂铃铄铅铆铈铉铊铋铌铍铎眚缺氩氤氦氧氨毪特牺造乘敌舐秣秫秤租秧积盉秩称秘透笄笕笔笑笊笫笏笋笆俸倩债俵倻借偌值倚俺倾倒俳俶倬倏倘俱倡候 $this->data[9][3]="凌凇凄栾挛恋桨浆衰勍衷⾼亳郭席准座脊症疳疴病疽疸疾痄斋疹痈疼疱疰痃痂疲痉脊效离衮紊唐凋颃瓷资恣凉站剖竞部旁旆旄旅旃畜阃阄阅阆羞羔恙瓶桊拳敉粉料粑益兼朔郸烤烘烜烦烧烛 $this->data[9][4]="剥恳展剧屑屐屙弱陵陬勐奘疍牂蚩祟陲陴陶陷陪烝姬娠娱娌娉娟娲恕娥娩娴娣娘娓婀砮哿畚通能难逡预桑剟绠骊绡骋绢绣验绤绥绦骍继绨骎骏邕烝鸶 ";$this->data[10][0]="彗耜焘舂琎球琏琐理琇麸琉琅捧掭堵揶措描埴域捺掎埼掩埯捷捯排焉掉掳掴埸堌捶赦赧推堆捭埠晳掀逵授捻埝堋教堍掏掐掬鸷掠掂掖培掊接堉掷掸控捩掮探悫埭埽据掘掺掇掼职聃基聆勘聊 $this->data[10][1]="龁颅虚彪雀堂常眶眭唪眦啧匙晡晤晨眺眵睁眯眼眸悬野圊啪啦喏喵啉勖曼晦晞晗晚冕啄啭啡畦趼趺距趾啃跃啮跄略蚶蛄蛎蛆蚰蚺蛊圉蚱蚯蛉蛀蛇蛏蚴唬累鄂唱患啰唾唯啤啥啁啕唿啐唼唷啴 $this->data[10][2]="铐铑铒铕铗铘铙銍铛铜铝铞铟铠铡铢铣铤铥铧铨铩铪铫铭铬铮铯铰铱铲铳铴铵银铷矫氪牾甜鸹秸梨犁稆秽移秾逶笺筇笨笸笼笪笛笙笮符笱笠笥第笳笤笾笞敏偾做鸺偃偕袋悠偿偶偈偎偲傀偷 $this->data[10][3]="凑减鸾毫孰烹庶庹⿇庵庼庾庳痔痍疵痊痒痕廊康庸⿅盗章竟翊商旌族旎旋望袤率阇阈阉阊阋阌阍阎阏阐着羚羝羟盖眷粝粘粗粕粒断剪兽焐焊烯焓焕烽焖烷烺焌清渍添渚鸿淇淋淅淞渎涯淹涿 $this->data[10][4]="逮逯敢尉屠艴弹隋堕郿随蛋隅隈粜隍隗隆隐婧婊婞婳婕娼婢婚婵婶婉胬袈颇颈翌恿欸绩绪绫骐续骑绮绯绰骒绲绳骓维绵绶绷绸绹绺绻综绽绾绿骖缀缁巢 ";$this->data[11][0]="耠琫琵琴琶琪瑛琳琦琢琥琨靓琼斑琰琮琯琬琛琚辇替鼋揳揍款堪堞搽塔搭塃揸堰揠堙揩越趄趁趋超揽提堤揖博揾颉揭喜彭揣塄揿插揪搜煮堠耋揄援搀蛰蛩絷塆裁揞搁搓搂搅揎壹握摒揆搔揉 $this->data[11][1]="辈斐悲紫凿⿋辉敞棠牚赏掌晴睐暑最晰量睑睇⿍睃喷戢喋嗒喃喳晶喇遇喊喱喹遏晷晾景喈畴践跖跋跌跗跞跚跑跎跏跛跆遗蛙蛱蛲蛭蛳蛐蛔蛛蜓蛞蜒蛤蛴蛟蛘蛑畯喁喝鹃喂喟斝喘啾嗖喤喉喻 $this->data[11][2]="铸铹铺铻铼铽链铿销锁锃锄锂锅锆锇锈锉锊锋锌锎锏锐锑锒锓锔锕甥掣掰短智矬氰毳毯氮毽氯犊犄犋鹄犍鹅颋剩嵇稍程稀⿉稃税稂筐等筘筑策筚筛筜筒筅筏筵筌答筋筝傣傲傅傈舄牍牌傥堡 $this->data[11][3]="亵装蛮脔就敦裒廋斌痣痨痦痘痞痢痤痪痫痧痛鄌赓竦童瓿竣啻颏鹇阑阒阔阕善翔羡普粪粞尊奠遒道遂孳曾焯焜焰焙焱鹈湛港渫滞湖湘渣渤湮湎湝湨湜渺湿温渴渭溃湍溅滑湃湫溲湟溆渝湲湾 $this->data[11][4]="堲遐犀属屡孱弼强粥巽疏隔骘隙隘媒媪絮嫂媛婷媚婿巯毵翚登皴婺骛缂缃缄缅彘缆缇缈缉缌缎缏缑缒缓缔缕骗编缗骙骚缘飨 ";$this->data[12][0]="耢瑟瑚鹉瑁瑞瑰瑀瑜瑗瑄瑕遨骜瑙遘韫魂髡肆摄摸填搏塥塬鄢趔趑摅塌摁⿎摆赪携塮蜇搋搬摇搞搪塘搒搐搛搠摈彀毂搌搦摊搡聘蓁戡斟蒜蓍鄞勤靴靳靶鹊蓐蓝墓幕蓦鹋蒽蓓蓖蓊蒯蓟蓬蓑蒿 $this->data[12][1]="督频龃龄龅龆觜訾粲虞鉴睛睹睦瞄睚嗪睫韪嗷嗉睡睨睢雎睥睬嘟嗜嗑嗫嗬嗔鄙嗦嗝愚戥嗄暖盟煦歇暗暅暄暇照遢暌畸跬跨跶跷跸跐跣跹跳跺跪路跻跤跟遣蛸蜈蜎蜗蛾蜊蜍蜉蜂蜣蜕畹蛹嗣嗯 $this->data[12][2]="锖锗错锘锚锛锜锝锞锟锡锢锣锤锥锦锧锨锪锫锩锬锭键锯锰锱矮雉氲犏辞歃稞稚稗稔稠颓愁筹筠筢筮筻筲筼筱签简筷毁舅⿏牒煲催傻像躲鹎魁敫僇衙微徭愆艄觎毹愈遥貊貅貉颔腻腠腩腰腼 $this->data[12][3]="酱鹑禀亶廒瘃痱痹痼廓痴痿瘐瘁瘅痰瘆廉鄘麂裔靖新鄣歆韵意旒雍阖阗阘阙羧豢誊粳粮数煎猷塑慈煤煳煜煨煅煌煊煸煺滟溱溘滠满漭漠滢滇溥溧溽源滤滥裟溻溷溦滗滫溴滏滔溪滃溜滦漓滚 $this->data[12][4]="群殿辟障媾嫫媳媲嫒嫉嫌嫁嫔媸叠缙缜缚缛辔缝骝缟缠缡缢缣缤骟剿 ";$this->data[13][0]="耥璈静碧瑶璃瑭瑢獒赘熬觏慝嫠韬髦墈墙摽墟撇墁撂摞嘉摧撄赫截翥踅誓銎摭墉境摘墒摔穀撖摺綦聚蔫蔷靺靼鞅靽鞁靿蔌蔽慕暮摹蔓蔑甍蔸蓰蔹蔡蔗蔟蔺戬蔽蕖蔻蓿蔼斡熙蔚鹕兢嘏蓼榛榧 $this->data[13][1]="蜚裴翡雌龇龈睿弊裳颗夥瞅瞍睽墅嘞嘈嗽嘌嘁嘎暧暝踌踉跽踊蜻蜞蜡蜥蜮蜾蝈蜴蝇蜘蜱蜩蜷蝉蜿螂蜢嘘嘡鹗嘣嘤嘚嘛嘀嗾嘧罴罱幔嶂幛赙罂赚骷骶鹘 ";$this->data[13][2]="锲锴锶锷锸锹锻鍠锾锵锿镀镁镂镃镄镅舞犒舔稳熏箐箦箧箍箸箨箕箬算箅箩箪箔管箜箢箫箓毓舆僖儆僳僚僭僬劁僦僮僧⿐魄魅魃魆睾艋鄱貌膜膊膈膀膑鲑鲔鲙鲚鲛鲜鲟疑獐獍飗觫雒孵夤馑 $this->data[13][3]="銮裹敲豪膏塾遮麽廙腐瘩瘌瘗瘟瘦瘊瘥瘘瘙廖辣彰竭韶端旗旖膂阚鄯鲞精粼粹粽糁歉槊鹚弊熄熘熔煽熥潢潆潇漤漆漕漱漂滹漫漯漶潋潴漪漉漳滴漩漾演澉漏潍慢慷慵寨赛搴寡窬窨窭察蜜寤 $this->data[13][4]="暨屣鹛隧嫣嫱嫩嫖嫦嫚嫘嫜嫡嫪鼐翟翠熊凳瞀鹜骠缥缦缧骡缨骢缩缪缫 ";$this->data[14][0]="慧耦耧瑾璜璀璎璁璋璇璆奭撵髯髫撷撕撒撅撩趣趟撑撮撬赭播墦擒撸鋆墩撞撤撙增撺墀撰聩聪觐鞋鞑蕙鞒鞍蕈蕨蕤蕞蕺瞢蕉劐蕃蕲蕰蕊赜蔬蕴鼒槿横樯槽槭樗樘樱樊橡槲樟橄敷鹝豌飘醋醌 $this->data[14][1]="龉龊觑憋瞌瞒题暴瞎瞑嘻嘭噎嘶噶嘲颙暹嘹影踔踝踢踏踟踬踩踮踣踯踪踺踞蝽蝶蝾蝴蝻蝠蝰蝎蝌蝮螋蝗蝓蝣蝼蝤蝙噗嘬颚嘿噍噢噙噜噌嘱噀噔颛幞幡嶓幢嶙嶝墨骺骼骸 ";$this->data[14][2]="镊镆镇镈镉镋镌镍镎镏镐镑镒镓镔靠稽稷稻黎稿稼箱箴篑篁篌篓箭篇篆僵牖儇儋躺僻德徵艘磐虢鹞鹟膝膘膛滕鲠鲡鲢鲣鲥鲤鲦鲧鲩鲪鲫鲬橥獗獠觯鹠馓馔 ";$this->data[14][3]="熟摩麾褒廛鹡瘛瘼瘪瘢瘤瘠瘫齑鹡凛颜毅羯羰糊糇遴糌糍糈糅翦遵鹣憋熜熵熠潜澍澎澌潵潮潸潭潦鲨潲鋈潟澳潘潼澈澜潽潺澄潏懂憬憔懊憧憎寮窳额谳翩褥褴褫禤谴鹤谵 ";$this->data[14][4]="憨熨慰劈履屦嬉勰戮蝥豫缬缭缮缯骣畿 ";$this->data[15][0]="耩耨耪璞璟靛璠璘聱螯髻髭髹擀撼擂操熹甏擐擅擞磬鄹颞蕻鞘燕黇颟薤蕾薯薨薛薇檠擎薪薏蕹薮薄颠翰噩薜薅樾橱橛橇樵檎橹橦樽樨橙橘橼墼整橐融翮瓢醛醐醍醒醚醑觱磺磲赝飙殪霖霏霓 $this->data[15][1]="冀餐遽氅瞥瞟瞠瞰嚄嚆噤暾曈蹀蹅踶踹踵踽嘴踱蹄蹉蹁蹂螨蟒蟆螈螅螭螗螃螠螟噱器噪噬噫噻噼幪罹圜鹦赠默黔 ";$this->data[15][2]="镖镗镘镚镛镜镝镞镠氇氆赞憩穑穆穄篝篚篥篮篡簉篦篪篷篙篱盥儒劓翱魉魈邀徼衡歙盫膨膪膳螣膦膙雕鲭鲮鲯鲰鲱鲲鲳鲴鲵鲷鲸鲺鲹鲻獴獭獬邂 ";$this->data[15][3]="憝亸鹧磨廨赟癀瘭瘰廪瘿瘵瘴癃瘾瘸瘳斓麇麈凝辨辩嬴壅羲糙糗糖糕瞥甑燎燠燔燃燧燊燏濑濒濉潞澧澡澴激澹澥澶濂澼憷懒憾懈黉褰寰窸窿褶禧 ";$this->data[15][4]="壁避嬖犟隰嬗鹨翯颡缰缱缲缳缴 ";$this->data[16][0]="璨璩璐璪戴螫擤壕擦觳罄擢藉薹鞡鞠藏薷薰藐藓藁檬檑檄檐檩檀懋醢翳繄礁礅磷磴鹩霜霞 ";$this->data[16][1]="龋龌豳壑黻瞭瞧瞬瞳瞵瞩瞪嚏曙嚅蹑蹒蹋蹈蹊蹓蹐蟥螬螵疃螳螺蟋蟑蟀嚎嚓羁罽罾嶷赡黜黝髁髀 ";$this->data[16][2]="镡镢镣镤镥镦镧镨镩镪镫罅穗黏魏簧簌篾簃篼簏簇簖簋繁鼢黛儡鹪鼾皤魍徽艚⿕爵繇貘邈貔臌朦臊膻臁臆臃鲼鲽鲾鳀鳁鳂鳃鳄鳅鳆鳇鳈鳉鳊獯螽 ";$this->data[16][3]="燮鹫襄糜縻膺癍癌麋辫赢糟糠馘燥懑濡濮濞濠濯懦豁蹇謇邃襕襁 ";$this->data[16][4]="臀檗甓臂擘孺隳嬷翼蟊鹬鍪骤 ";$this->data[17][0]="鏊鳌鬹鬈鬃瞽藕鞯鞨鞭鞫鞧鞣藜藠藤藩鹲檫檵覆醪蹙礞礓礌燹餮 ";$this->data[17][1]="蹩瞿瞻曛颢曜躇蹦鹭蹢蹜蟛蟪蟠蟮嚚嚣鹮黠黟髅髂 ";$this->data[17][2]="镬镭镯镰镱馥簠簟簪簦鼫鼬鼩雠艟翻臑鳍鳎鳏鳐鳐鳑鹱 ";$this->data[17][3]="鹰癞癔癜癖糨冁瀑瀍瀌鎏懵襟 ";$this->data[17][4]="璧戳彝邋 ";$this->data[18][0]="鬏攉攒鞲鞴藿蘧孽蘅警蘑藻麓攀醭醮醯礤酃霪霭 ";$this->data[18][1]="黼鳖曝嚯蹰蹶蹽蹼蹯蹴蹾蹲蹭蹿蹬蠖蠓蠋蟾蠊巅黢髋髌 ";$this->data[18][2]="镲籀簸籁簿鳘齁魑艨鼗鳓鳔鳕鳗鳙鳚蟹 ";$this->data[18][3]="颤靡癣麒鏖瓣蠃羸羹爆瀚瀣瀛襦谶 ";$this->data[18][4]="襞疆骥缵 ";$this->data[19][0]="瓒鬓壤攘馨蘩蘖蘘醵醴霰颥 ";$this->data[19][1]="酆耀矍曦躁躅蠕鼍嚼嚷巍巉黩黥 ";$this->data[19][2]="镳镴黧籍纂鼯犨臜鳜鳝鳞鳟獾 ";$this->data[19][3]="魔糯灌瀹瀵 ";$this->data[19][4]="譬孀骧 ";$this->data[20][0]="耰蠢瓘鼙醺礴礳霸露霹 ";$this->data[20][1]="颦曩躏黯髓 ";$this->data[20][2]="鼱鳡鳢 ";$this->data[20][3]="癫麝赣夔爝灏禳 ";$this->data[20][4]="鐾羼蠡 ";$this->data[21][0]="耲耱懿韂蘸鹳糵蘼囊霾 ";$this->data[21][1]="氍饕躔躐髑 ";$this->data[21][2]="镵镶穰鳤 ";$this->data[21][3]="瓤饔 ";$this->data[21][4]="鬻 ";$this->data[22][0]="鬟趱攫攥颧 ";$this->data[22][1]="躜 ";$this->data[22][2]="罐鼹鼷 ";$this->data[22][3]="癯麟蠲 ";$this->data[23][0]="矗蠹醾 ";$this->data[23][1]="躞 ";$this->data[23][2]="衢鑫 ";$this->data[23][3]="灞襻 ";$this->data[24][0]="纛鬣攮 ";$this->data[24][1]="囔 ";$this->data[24][2]="馕 ";$this->data[24][3]="戆 ";$this->data[25][1]="蠼 ";$this->data[29][2]="爨 ";$this->data[35][2]="齉 ";}}$text = new bihua();echo $text->find("谢");>运⾏结果:12PHP实现汉字笔画统计⽐如说统计张⼩明名字 ” 张⼩明“ 名字笔画,实现流程为以下:先要下载字体笔画库:百度⾃⾏查找原⽣PHP实现<?php//字体库请加QQ群下载:52581432header('content-type:text/html;charset=utf-8');set_time_limit(0);$conn = mysql_connect('localhost','root','123456');$db = mysql_select_db('test');mysql_set_charset('utf8');$name = "张⼩明";$arr = str_split($name,3);$count = 0;foreach ($arr as $key => $value) {$sql = 'select `sum` from `hanzi` where `content` ="'.$value.'"';$res = mysql_query($sql);while ($row = mysql_fetch_assoc($res)) {$str = $row['sum'];}echo $value.'字 '.$str.'笔<br/>';$count += $str;}echo $name.'共 '.$count.'笔';ThinkPHP实现:public function bihua(){$name = "张⼩明";$arr = str_split($name,3);$count = 0;foreach ($arr as $key => $value) {$str=M('Hanzi')->where(array('content'=>$value))->getField('sum');$count += $str;}echo $name.'共 '.$count.'笔';}PS:这⾥再为⼤家推荐⼏款相关在线⼯具供⼤家参考使⽤:更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》希望本⽂所述对⼤家PHP程序设计有所帮助。
PHP 实现关键字搜索后描红功能⽰例本⽂实例讲述了PHP 实现关键字搜索后描红功能。
分享给⼤家供⼤家参考,具体如下:在刚开始学习php 的时候,就对搜索过后的关键字描红感到好奇,但是这⼏天在巩固php 基础的时候,就发现原来这样的效果实现并不难。
按照惯例,⾸先给⼤家看看效果图吧。
数据库名是book ,只有⼀个数据库表,也是book ,模拟了5条数据。
name 字段是书名,description字段是书的描述12345678910111213141516171819202122<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesheet" href=""></head><body><form action="14.php" method="post">请输⼊关键字:<input type="text" name="keyword"><input type="submit" value="提交" /></form><?php if(!empty($_POST['keyword'])){ $keyword = $_POST['keyword'];//获取输⼊的关键字 //进⾏数据库连接$conn = mysql_connect("localhost","root","1234");if(!$conn){die("数据库连接失败");} $flag = mysql_select_db("book",$conn);23242526272829303132333435363738394041if(!$flag){die("数据库打开失败");} mysql_query("set names utf8"); $sql = "select * from book where name like '%$keyword%' or description like '%$keyword%'"; $result = mysql_query($sql,$conn); while($row = mysql_fetch_assoc($result)){><div style="width:300px;height:100px;background-color: #ccc;margin-bottom: 10px"><p>书名:<?php echo str_ireplace($keyword, "<font color='#f00'>$keyword</font>",$row['name'])?></p><p>描述:<?php echo str_ireplace($keyword, "<font color='#f00'>$keyword</font>",$row['description'])?></p></div><?php }}else{ echo "很遗憾,没有找到书籍";}></body></html>最后说⼀下实现的原理,⾸先先获取从⽂本框输⼊的关键字⽂字,然后就是连接数据库进⾏查询,将书名中或者描述中包含关键字⽂字的记录查询出来,把查询到的结果循环显⽰出来,在显⽰书名和描述的时候,⽤str_ireplace()函数将其中的关键字⽂字替换成带有红⾊的⽂字,就实现了关键字描红的效果。
php输出json及显⽰json中的中⽂汉字详解及实例php 输出json及显⽰json中的中⽂汉字在php中,我们经常需要将数组输出json,只需要使⽤json_encode函数处理⼀下数组即可,但有的时候数组⾥⾯有中⽂,使⽤json_encode函数处理后中⽂字符被编码成了Unicode,如何才能在json中显⽰中⽂呢?请看下⽂。
⾸先介绍⼀下php输出json格式:⼀种最简单的⽤法,就是把数组直接输出为json,如下:<?php$arr = array('p1'=>'ni"hao','p2'=>2,'ch'=>'码农你好!');$json = json_encode($arr);echo $json;>输出的结果为:{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}这⾥要注意:双引号在json中会被⾃动编码为\",这个很好理解,js中字符串中是不允许出来单引号、双引号和反斜杠的。
中⽂字符被编码成了Unicode如果是写接⼝,那直接这样输出就够了,中⽂⽆需去做处理。
等到了客户端,再去把Unicode的中⽂转成汉字即可。
但如果要在服务器端直接输出汉字出来,那我们可以做如下处理。
<?php$arr = array('p1'=>'nihao','p2'=>2,'ch'=>'码农你好!');$json = json_encode($arr);echo decodeUnicode($json);function decodeUnicode($str){return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',create_function('$matches','return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'),$str);}>输出:{"p1":"ni\"hao","p2":2,"ch":"码农你好!"}这个操作很简单,其实就是把输出结果匹配⼀下,把Unicode还原成了汉字。
PHP汉字正则表达式导语:php技术已经非常的成熟,但是,你知道多少php的技术方法呢?php汉字正则表达式你会么?下面的是搜集的php汉字正则表达式。
gbk编码下汉字正则1.判断字符串是否全是汉字代码如下$str=全部是汉字测试;if(preg_match_all("/^([x81-xfe][x40-xfe])+$/",$str,$match)){echo全部是汉字;}else{echo不全是汉字;}当$str=全部是汉字测试;时输出"全部是汉字";当$str=all全部是汉字测试;时输出"不全是汉字";2.判断字符串是否包含汉字代码如下$str=汉字3测试;if(preg_match("/([x81-xfe][x40-xfe])/",$str,$match)){echo含有汉字;}else{echo不含有汉字;}当$str=汉字3测试;时输出"含有汉字";当$str=abc345;时输出"不含有汉字";上述变量$str的内容与utf8还是gbk编码无关,判断结果是一样的。
utf-8编码下用正则表达式如何匹配汉字代码如下$str="php编程";if(preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)){print("该字符串全部是中文");}else{print("该字符串不全部是中文");}。
php 提取中文词语
可以使用正则表达式来匹配中文字符,然后提取中文词语。
例如: $pattern = '/[x{4e00}-x{9fa5}]+/u'; // 匹配中文字符
$str = '这是一段中文文本';
preg_match_all($pattern, $str, $matches);
print_r($matches[0]);
输出结果为:
Array
(
[0] => 这是一段中文文本
)
2、使用中文分词工具
中文分词工具可以将中文句子分成单个词语,然后再进行筛选和处理。
常用的中文分词工具有 jieba、snownlp 等。
例如使用 jieba: require_once 'vendor/autoload.php'; // 加载 jieba
use FukuballJiebaJieba;
use FukuballJiebaFinalseg;
Jieba::init();
Finalseg::init();
$str = '这是一段中文文本';
$words = Jieba::cut($str);
print_r($words);
输出结果为:
Array
(
[0] => 这是
[1] => 一段
[2] => 中文
[3] => 文本
)
3、使用中文词典
可以使用中文词典来提取中文词语。
常用的中文词典有搜狗词库、哈工大的 LTP 词库等。
php中文参考手册以下是一个简化的PHP中文参考手册,以帮助您了解PHP的基本概念和语法:1. 简介PHP是一种流行的开源脚本语言,主要用于Web开发。
它被广泛用于构建动态网站和应用程序,并且与MySQL、SQLite等数据库兼容。
2. 语法基础常量与变量常量是一个在程序中定义的值,它不能被改变。
变量是用于存储数据的标识符,可以存储不同类型的数据,如字符串、数字、数组等。
运算符PHP支持各种运算符,包括算术运算符(如+、-、、/)、比较运算符(如==、!=、>、<、>=、<=)、逻辑运算符(如&&、、!)等。
流程控制PHP提供了if语句、switch语句和循环语句(如for、while)等流程控制结构,用于控制程序的执行流程。
3. 函数与类PHP具有丰富的内置函数和自定义函数库,可以用于执行各种任务,如文件操作、数据库交互等。
此外,PHP还支持面向对象编程(OOP),可以通过类来封装属性和方法。
4. 数据库交互PHP与数据库兼容,可以轻松地与MySQL、SQLite等数据库进行交互。
通过使用适当的函数和查询语句,可以执行数据库操作,如插入、更新、删除和查询数据。
5. Web开发PHP在Web开发中具有广泛的应用。
您可以使用PHP来处理表单数据、生成动态网页内容、与Web服务器进行通信等。
通过与HTML和CSS的结合,可以构建功能强大的Web应用程序。
以上是一个简化的PHP中文参考手册,旨在帮助您了解PHP的基本概念和语法。
要深入了解PHP的更多功能和用法,请参考官方文档或相关书籍。
phpstorm chinese语法
在 PHPStorm 中,中文语法高亮可以通过以下步骤进行设置:
1. 打开 PHPStorm,进入 "File"(文件)菜单,选择 "Settings"(设置)。
2. 在设置对话框中,展开 "Editor"(编辑器)选项卡,然后选择 "Color Scheme"(颜色方案)。
3. 在颜色方案设置中,选择 "PHP"(PHP)选项卡。
4. 在 PHP 选项卡中,找到 "Keywords"(关键字)部分,展开该部分并选择 "PHP "(PHP )或您当前使用的 PHP 版本。
5. 在 "Keywords"(关键字)部分中,您将看到一个列表,其中包含 PHP 中的所有关键字。
在列表中,找到 "关键字"(关键字)列,将 "keyword"(关键字)的颜色设置为适合中文的语法高亮颜色。
6. 确保 "Match case"(区分大小写)选项未选中,以便关键字不区分大小写。
7. 单击 "Apply"(应用)按钮以保存更改。
现在,您应该能够在 PHPStorm 中使用中文语法高亮了。
请注意,这只是一种简单的设置方法,您还可以根据需要进行更多自定义设置。
文章标题:探讨PHP翻译代码的实现方法与优化思路导言在Web开发中,多语言支持是一个必不可少的功能。
而对于PHP开发者来说,如何实现高效的代码翻译成多种语言成为了一个重要的议题。
本文将从深度和广度两个方面来探讨PHP翻译代码的实现方法与优化思路,旨在帮助读者更好地理解和应用这一技术。
一、了解PHP翻译代码的基本概念在开始深入探讨之前,首先需要了解什么是PHP翻译代码。
简而言之,PHP翻译代码是指将网站或应用中的文字内容根据用户的语言偏好进行动态翻译展示的技术。
这种技术可以帮助网站或应用实现多语言支持,让用户在访问网站时能够以自己擅长的语言获取信息,从而提升用户体验。
二、PHP翻译代码的实现方法探讨1. 使用gettext库在PHP中,可以使用gettext库来实现代码翻译。
该库是一个多语言支持的国际化工具,通过该工具可以将网站或应用中的文字内容存储在一个独立的文件中,然后根据用户的语言偏好动态加载对应的翻译文件,从而实现多语言支持。
2. 手动实现翻译数组除了使用gettext库外,PHP开发者还可以通过手动实现翻译数组来实现代码翻译。
这种方式需要开发者自行维护翻译内容和对应的翻译数组,然后根据用户的语言偏好加载对应的翻译数组,实现多语言支持。
三、PHP翻译代码的优化思路探讨1. 使用缓存技术为了提升代码翻译的效率,可以考虑使用缓存技术来缓存已经翻译的内容,避免多次重复翻译造成性能开销问题。
2. 懒加载翻译文件另外,可以考虑采用懒加载的方式来加载翻译文件,即只有在需要翻译内容的时候才进行加载,避免一次性加载所有翻译内容造成资源浪费。
总结与展望通过本文的探讨,我们对PHP翻译代码的实现方法与优化思路有了更深入的了解。
无论是使用gettext库还是手动实现翻译数组,都可以实现多语言支持的功能。
而通过使用缓存技术和懒加载翻译文件等优化思路,可以进一步提升代码翻译的效率和性能。
希望本文能够帮助读者更好地应用PHP翻译代码技术,为用户提供更好的多语言支持体验。
<?phpecho "Before in main.php3<BR>\n";$retval = include ('test.php3');echo "File returned: '$retval'<br>\n";echo "Back in main.php3<BR>\n";?>则于PHP4中执行的结果为:Before in main.php3Before the returnFile returned: '27'Back in main.php3【注意】:执行到return处为止。
然而在PHP3中这是不合法的,PHP3中include()是不能传回数值的。
假如把main.php3改成:<?phpecho "Before in main.php3<BR>\n";include ('test.php3');echo "Back in main.php3<BR>\n";?>则PHP3会产生parse error(剖析错误,由语法或打字错误所产生):Before in main.php3Before the return27Back in main.php3Parse error: parse error in .....这是因为return指令并不是位于函数的括号中,而是位于非函数的括号中,只要把return移到括号之外即可。
【注意】:当PHP执行require()和include()时会由PHP模式转为HTML模式,档案引入完成时,再转回PHP模式。
因此,若require()或include()的档案中有使用PHP语法,则需使用合法的PHP开始和结束的标记(TAG)。
php判断是否是汉字的方法PHP判断是否是汉字的方法介绍在开发过程中,我们经常需要判断一个字符是否为汉字。
本文将详细介绍使用PHP进行汉字判断的几种常用方法。
方法一:使用正则表达式1.使用preg_match()函数结合正则表达式进行判断。
2.正则表达式:/^[\x{4e00}-\x{9fa5}]$/u3.代码示例:function isChineseCharacter($char) {return preg_match('/^[\x{4e00}-\x{9fa5}]$/u', $char); }方法二:使用Unicode编码1.判断字符的Unicode编码是否在汉字范围内。
2.代码示例:function isChineseCharacter($char) {$unicode = mb_ord($char);return ($unicode >= 19968 && $unicode <= 40869);}方法三:使用系统函数1.判断字符的字节数是否大于1,来判断是否为汉字。
2.注意:此方法只适用于UTF-8编码。
3.代码示例:function isChineseCharacter($char) {return strlen($char) > 1;}方法四:使用字符集检测函数1.使用mb_detect_encoding()函数判断字符的字符集是否为UTF-8。
2.再判断字符的字节数是否大于1,来判断是否为汉字。
3.代码示例:function isChineseCharacter($char) {return strlen($char) > 1 && mb_detect_encoding($char, 'UTF-8', true);}方法五:使用Unicode范围判断1.判断字符的Unicode范围是否在汉字范围内。
在 PHP 中用描点法“绘制”中文内容摘要:前言 现在,越来越多的人喜欢上网了,越来越多的人拥有了自己的个人主页。
随着各种自动化软件工具的出现,制作网页越来越简单。
但,由于特效随处可得,创新的东西,越来越少。
说不定,哪天,你会发现某个网站上的计数器和自己的一模一样。
网页越做越老练。
网页上的..前言现在,越来越多的人喜欢上网了,越来越多的人拥有了自己的个人主页。
随着各种自动化软件工具的出现,制作网页越来越简单。
但,由于特效随处可得,创新的东西,越来越少。
说不定,哪天,你会发现某个网站上的计数器和自己的一模一样。
网页越做越老练。
网页上的东西,也越来越多,越来越丰富。
设问在网页上,如果我要添加一个计数器:以前,那就去空间提供商那里要个链接,或其他地方去复制个地址,但这一些,总归是别人做的,好不好,你是没有太多的发言权的,只能一个一个地找。
在网页上,我要将一些信息发布出去:假如信息是文本,做一个新页面,加个链接;是数据,做一个新页面,加个链接:可要是这些数据经常更新,甚至,每小时、每分钟,都可能会改变,你是否愿意守在电脑前,不停修改、上传呢?(咱可不是商业网站,没有人愿意为你而烧钱。
)而留言板、聊天室、论坛,这些,决不是单靠HTML和java script就能搞定的。
为了实现更多的自动控制,可以使用CGI(Common Gateway Interface)程序来实现这些功能。
软件需求PHP:GD Library配置支持PHP的服务器。
我用OmniHTTPd Professional对于计数器和实时数据统计、发布,我们可以用图片来完成。
在图片中输出文字。
在PHP中,要创建一个图片,并在上面显示点内容,基本步骤如下:<?php//http 头,告诉浏览器,这是一个GIF图片header ("Content-type: image/gif");// 要画画,先要有花布不是?创建一个400×300调色板图像$im = imagecreate (400, 300);$black = imagecolorallocate ($im, 0, 0, 0);// 默认黑色背景。
//(默认,是指第一个定义的颜色。
如果在此行代码前面定义了另一个颜色,那么,最先定义的那个,就是默认背景颜色。
)$red = imagecolorallocate ($im, 255, 0, 0);//红色。
如果这两行交换,你会发现背景是红色,文字是黑色。
$string="1234567890";// 要绘制的字符imagestring ($im,12,10,10,$string,$red);//在(10,10)开始绘制字符串imagepng ($im);// 以png格式输出,也可以用imagejpeg($im);或magegif($im);但后者,如果GD版本高于1.6,就不能用了。
imagedestroy ($im);// 结束,清除所有占用的内存资源?>上面示例,在400×300的图片上,自点(10,10)开始,绘制12磅的"1234567890"。
你有没有注意到这张图片的大小是:251字节!你也可以试试其他的输出格式。
图片的大小,与图片中非背景象素点数有关,跟输出多少象素无关。
然而,有一个问题。
你可以用imagestring()输出如下的信息:imagestring($im,1,0,0,"abcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+{}|:"<>?[]';,./",$red);可是,你无法正确输出中文!!!imagestring($im,1,0,0," 啊",$red);你看到的,决不是中文!!而是乱码。
PHP默认的字符集是UTF-8,而简体中文是GB2312。
如何解决?!为了解决这个问题,你可以让PHP加载扩展模块php_iconv.dll(UNIT下的后缀名是.SO),不过,有时候可能不能正常工作。
本来,我要把一段测试代码放上来,可这次,怎么弄都没有成功。
为了避免错误,我还是不把它们放上来了。
但,最致命的,如果你的空间服务商关闭了该扩展模块,或者,甚至禁止了加载模块的DL()函数,那,你就只能跟中文BYE-BYE了。
还好,还有其他办法。
可以通过字符映射,将预先转换好的码表中字符输出来。
但,你需要一张码表!或者,手工绘制每一个中文的每一个点!感觉怎么样?!好,来吧,我们一起来画字!画字,首先要知道怎么画。
初中的简单函数,学过吧?要画出函数的图形,做过吧?算出某点的坐标,然后连接两相邻点。
这种方法,叫描点法。
我们要做的,是尽量多地将点算出来,然后在相应坐标显示出来。
你是否听说过点阵打印机、点阵汉字?在输出汉字时,它们是用一个个点来表示的。
在某个坐标上显示一个某种颜色的点的函数是:int imagesetpixel ( resource image, int x, int y, int color)假定我要在坐标(100,100)处显示一个白色的点,那么,只需如下代码:<?phpheader ("Content-type: image/gif");$image = imagecreate (400, 300);$black = imagecolorallocate ($image, 0, 0, 0);$white = imagecolorallocate ($image, 255, 255, 255); // 定义白色 imagesetpixel ( $image, 100, 100, $white);imagepng ($image);imagedestroy ($image);?>也就是说,我们只要获取某个汉字的所有点的信息,我们就能够通过这个函数,输出那个汉字。
在文件chs16.fon里,保存的,是国标区位码表(国家标准信息交换用汉字编码基本字符集GB-2312)。
它是汉字的点阵字库。
(WIN98系统中,此文件在c:windowscommand下。
如果你要把它放在UNIX系统下使用,请注意大小写。
如果没有,你可以在文末找到链接。
) 它是MSDOS时代的,但,好东西,还是应该拿出来一用的。
从 chs16.fon里,我们可以读取汉字的点阵数据。
每个汉字,都是由16×16个点构成的。
笔划走过的地方,点的值为1,否则为0;每个点占用一个位,每8个点构成一个字节。
那么,一个汉字,就需要(16×16÷8=32)字节。
下面这个实例,是为了说明字符点阵的表示方法。
这里定义了一个8×8的矩阵,显示了一个字母C,白色的方块用0表示,黑色方块用1表示,那么,这八行图形的代码分别是:行二进制表示十六进制表示000000000x001001111100x3E2011100000xE03011100000xE04011100000xE05011100000xE06001111100x3E7000000000x00要输出这些点的话,就需要先画第一行,然后第二行、第三行……到最后一行。
用一个循环:for($hang=0;$hang<8;$hang++)在每一行中,有八个格子,需要分别绘制,从第一个,然后第二个、第三个……到最后一个。
用一个循环:for($gezi=0;$gezi<8;$gezi++)两个循环联列:for($hang=0;$hang<8;$hang++)for($gezi=0;$gezi<8;$gezi++){ //在这里,我们就能输出点了。
imagesetpixel ( $image, $gezi, $hang, $color);}但,我们如何知道到哪里去读某个汉字的点阵数据呢?一般的字符,比如ASCII码,是用数字0--127(即二进制00000000到 01111111)来表示,而中文,则是用两个高位为1的字节(100000000 100000000)表示。
如: 半角字符"A",机内码为 (01000001)(它实际上是ASCII码值)。
下面,让我们打开"字符映射表"看看吧。
如果你为了节省磁盘,没有安装,那就装一下,不大。
如果不会安装,那你就接下去看我乱侃吧。
在字符映射表里,字体选择"楷体_GB2312",点击"特殊符号",这时,你可以看到国标区位码表,从字符(10110000 10100001)开始,一直到(10011111 11111111)。
全角字符"A",机内码为:(10100011 11000001)(它实际是两个高位为1的ASCII码)。
中文"啊"的机内码,是(10110000 10100001);在GB-2312字符集中,"啊"在表中位置是第16区第1位,这个坐标 (16,1),用二进制表示,就是(00010000,00000001)。
这,就是"啊"的区位码。
请看:中文字符: 啊机内码: (10110000 10100001)区位码: (00010000,00000001)相差: (10100000,10100000)所以,区位码与机内码的换算公式为 【区位码】+(10100000 10100000)=【机内码】。
即: 区位码0 + (10100000) = 机内码0;区位码1 + (10100000) = 机内码1;这样的话,点阵数据,就可以通过汉字"机内码"-> "区位码"进行索引、查找。
前面已经讲了一个汉字,在表中要占用32字节,所以,我们定义了一个含有32个元素的数组:$buffer=array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);用来保存从字库读出的32个字节数据。
接下来的问题,某一个字符,到底保存在文件的什么位置呢?由于一个汉字用了32个字节,而GB-2312区位码表表有94行、94列,那么,只要知道该字符在表中是第几个,再乘以32就行了。
所以定义偏移量:$offset=(94*($qh-1)+($wh-1))*32;$qh表示区(qu)、$wh表示位(wei);减1,是因为PHP从0开始计数。
位置找到,就只需要用fseek()函数定到码表的这个位置,然后读32字节到$buffer就行了。