php写卡牌游戏,生成汉字卡牌的PHP小应用

上初中时,班里曾经有人发明了一套用化学元素信息做卡牌的游戏,风靡一时。可惜现在已经完全想不起来当时的玩法了。包子上小学后,包爸就想着也效仿这种模式,让包子和小伙伴们有的玩。于是断断续续花了一个学期的时间,在包妈的协助下,和包子一起琢磨制作出大脑锛儿汉字卡牌游戏。临近期末时,规则基本定型,需要做一套汉字卡了,为了省事,自己写了一个PHP web app,到汉典网站上抓取所需的汉字信息,生成可打印的HTML文件。下面就是程序代码,有类似需求的可以省去再造车轮了。当然,不懂代码的话,也可以到我们的大脑锛儿汉字卡牌游戏网站上直接生成。

应用的基本流程是:检查是否有提交的汉字post数据,没有就展示填写汉字的表单网页。如果有数据,就先到使用序列化保存的文本数据文件中寻找是否已有这个汉字的信息,没有就到汉典网站中抓取,并保存到数据文件中。最后组成汉字卡牌数据,使用html模板进行展示。

需要说明的一个是费了一些功夫才搞明白的汉典单个汉字网页url的生成规则(代码第131行),举例来说,“汉”字的网页url是:

http://www.zdic.net/z/1c/js/6C49.htm

红色部分就是“汉”字的unicode64编码,蓝色则是依照这个编码,每1000个汉字为一个区块的区块序号(16进制)。

scrapeContent方法(从156行开始)中,$rules变量中放的是提取汉字网页中各部分信息(拼音、部首、结构……)的正则表达式相关数据,其中拼音因为有可能是多音字,所以需要多次匹配。我测试过几百个汉字,偶尔会有部首、结构、构造等信息抓取不到的情况,也就是说方法返回的数组中,$return['bushou'], $return['bihua'], $return['buwai'], $return['jiegou'], $return['gouzao']这些元素可能没有设置,在写展示方法时要考虑到。

最后的display方法,会根据$type参数('form'或'page')调取不同方法获取html模板展示表单页或汉字卡页,涉及到展示逻辑,共通性不大,就不放在这里了。

最后的最后,想替汉典网站做个广告,就中文的字、词、词组、成语信息来说,他们的收集整理工作非常周到细致,当我遇到汉字相关问题时,绝对是首选的信息源。希望大家能正当地使用我的代码,不要做任何损害汉典利益的事情。这个“关于我们”页面里是汉典网站自己的介绍信息及捐助方法,如果大家欣赏汉典的内容,请多多支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值