资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微信公众平台入门到精通Vol.18昨天在 ZTalk 的技术群里有人在询问如何通过微信来做问答系统,他有 1000道题目,想每次随机抽取 10 道题目让用户来回答,题目格式如图:这个图是那位朋友的,从题目上来看,嘻嘻应该是运营商滴干活。关于答题系 统之前有朋友提过,我一直没时间搞,其实做这个是非常简单的,趁这次机会 干脆做下把源码提供给大家。源码请在公众号里输入“微信代码”查看下载连接,然后将下载链接自己想办法 搞到 PC 上然后再下载建议先下载安装了再看文章,以下是注意事项:1、与微信接口文件为 wx_interface.php,大家可以将里面源代码复制粘贴到自 己的接口文件里覆盖掉。2、其他的文件全部上传到 SAE 的代码编辑里,有同名文件可以先删除原来文 件再上传。3、文件说明:base-class.php 自定义函数,无需改动wx_tpl.php 回复消息的模板,无需改动question_manager.php 题库管理,无需改动question_add.php 添加题目,无需改动wx_interface.php 微信接口文件,根据自己实际修改名称数据库创建方法请查看微信公众平台入门到精通Vol.15,创建代码在数据数据 库库.txt 里。数据库分两张表,一张是问题表,一张是答题情况表,问题库的结 构我就参照上图来了,答题情况表结构为序号、答题时间、回答的题目序号、 答题消耗时间、答题错误次数。一、题库建立做问答系统首先是创建一个题库,一般的题目会有单选题、多选题和问答题, 鉴于手机用户使用方便考虑,建议使用单选题。添加题目的文件为 question_add.php,大致的代码结构跟上次的通讯录后台一 样,唯一多的是一个题目选项,题目选项我是用 textarea 这个控件,这是一个 支持多行输入的输入框,并且可以直接存放到数据库,并且方便的按原来样子 输出显示。后台的效果如下图所示:二、从题库随机提取不重复的 N 个问题所有做问答系统的朋友都会问这个问题,如何从题库中随机的提取 N 个不重复的,今天在教程里就有这段代码。其实 Mysql 本身是有自己的获取随机记录的函数,但是那个效率太低,如果数 据库里记录超过几万,就会非常慢。三、用户答题流程用户答题整个程序都在 wx_interface.php 里,我在这里简单的介绍一下。为了方便随时修改每次让用户回答的题目数,在第 17 行设了一个抽取题目数,修改这个数字就可以控制用户回答题目的数量。一个友好的关注欢迎引导词是必不可少的,如何设置欢迎词请查阅第 9 期教程。 用户输入“GO”后就进入了答题环节。首先是从题库中提取 N 个不重复的随机题目,获取的题目是数组形式,我们将 这些题目用 serialize 序列化后保存到缓存里(命名为:微信用户 OPENID_question_data),接下来用户答题就是从这个缓存里获取。设定答题的当前序号为 setp_1 并保存到缓存,用户互动时就通过判断这个缓存 是否有值决定是否是答题状态。设定开始的时间和初始化错误次数并保存到缓存,用来记录用户的一些答题数 据。由于答题是一个循环的过程,因此我们在用户输入 go 的时候只是把相关数据 初始化放入缓存并不输出问题,而是单独写一个每次答题都会用到的循环过程 来做答题,这个循环过程包括:1、从缓存中取出数据2、判断当前是否在答题状态,即 question_order 这个缓存是否有值,同时提 取当前是第几题赋值给$now_order。3、如果当前不是第一题,则表示这个时候用户发送的回复消息应该是答案,那么检查答案是否正确,如果不正确提示错误并退出程序让用户继续回答当前题 目。4、判断当前是否是最后一题,如果是则保存用户答题数据,清空所有缓存,提 示用户答题完成信息。5、当前问题回答正确且没有到最后一题的,系统提取下一个题目输出,同时增 加答题序号的步长。6、一些附加功能,比如输入 best 查询自己的最好成绩,输入 history 查询自己 最近 10 次答题记录。如果想做互动的话还可以让做个查看比你快的用户有多少等等,自由发挥吧。基本上整个程序介绍就到这里,想试玩的可以搜索微信号“weixincourse”。因为 是在机场写的,比较匆忙,还请包涵,有问题的请留言那个咨询如何做微信问答系统的朋友在我教程出来前已经在 ZTalk 技术群的帮 助下自己 DIY 出来了,我让他写了点心得,大家可以点击原文阅读查看,里面 有不少干货哦。另外关于批量输入题目这个问题其实好解决,可以用 phpexcel 这个类程序直接 读取 XLS 表格,具体百度一下吧,哈哈哈!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号