PHP微信公众开发笔记(八)

PHP微信公众开发笔记系列

日期:2014.9.6

今天主要要做:建立关键词数据库、超时机制、优化的关键词匹配、表情信息数据库

要注意的:PHP echo之后并没有返回?还会继续执行??

2014.9.11整理笔记:

写这个笔记的时候,在赶功能,所以也就是简单的记几笔当时的工作内容,现在功能开发得差不多了,就来整理之前的笔记。当时就很简单的记录了上文的那几句。

这天是周六,不加班了在租的房子里歇着。因为要过中秋了,在深圳的姐这天会过来我这边过节,所以这天也没多少时间来写功能。早上早起去跑步,然后回来就开始折腾了(现在想想,没准以后自己真会成为一个工作狂了)。这天做的功能是在数据库中建立一个关键词数据表、表情信息数据表、加入了超时机制和优化了关键词匹配。

一、关键词数据表

这个数据表存储的信息主要是我之前做关键词过滤、捕获时用到的一些关键词。因为想方便管理,所以想一想将这些放到数据库中去,然后写一个函数调取这些信息,再去做匹配,这样我就不需要将所有的信息都写死在代码中,会更灵活点。有了这个想法之后,便开始整理这个数据表了。

关于数据库的操作没什么特意要提的,这里主要是记录下代码中的操作吧:

1、首先是获得所有的关键词:

这个很简单,就是将数据库中关键词数据表的整个数据都弄出来:

select * from xxx 选取数据表xxx的信息;

然后将得到的信息存储至一个二维数组中:

这样就得到了所有的关键词信息了。

2、得到了关键词数据表的信息之后,就是做关键词的匹配了:

首先我需要得到匹配到的这一行数据信息,然后再做下一步的工作。因为这里的关键词是将诸如地址、电话、老家之类的存在数据库,而用户发送过来的可能是XX电话、XX老家,所以在这里判断不是之前用的那个in_array,而是使用的strstr()函数来做判断的:

具体代码如上图所示,这样我就得到了这个关键词在数据表中的数据行了,然后我根据其类型再做下一步工作(数据表中包含关键词、关键词类型这两个字段,有这两个信息我就可以根据关键词类型做相应的操作了):

后续的操作就是直接使用的之前的代码,我这里只是理了一下结构而已。提到的优化了关键词

二、表情数据库

回复信息是可以回复表情的,在这里我不是用的emoji表情,而是最普通的那种,比如说"微笑" 就用"/::)"这个来表示,我建立的表情数据表也就是以微笑作为关键词,以"/::)"为值,然后加上一个表情类型,总共这三个字段。使用的时候,使用直接输入微笑,然后得到其值再回复,就可以使用了。也只是涉及到数据库的操作,在这里就不多啰嗦了。

三、超时机制

因为公众号使用了$_SESSION来存储如验证用户身份等信息,还有选择的菜单类型。就感觉有必要定期清理这些,比如说用户选择了菜单,然后长时间没有用了,那么就最好是下一次再使用的时候没有在菜单里了,而应该是退出了。有这样一个考虑,我就在网上查阅了相关了资料:要么就是定期全部清理所有的$_SESSION,要么就是定期清除单个$_SESSION。要做到定期,那么就需要知道时间,结合我之前做手游项目时用到的东西,想做定期无非也就是记住开启的时间,然后在每次使用的时候做判断就可以了。

在实现上,首先我是记录存储某个$_SESSION的时间,比如说验证用户身份的时间:

上图出现的psa_time()也只是对系统提供的time()函数的一个包装而已。这样我就获得了验证身份的时间,然后我在每次用户操作的时候获得当前时间,用来跟记录的这个时间做对比:

这样就实现了我所谓的超时机制了。

PHP学习记录:

在echo 之后,函数还是会执行下去嘛?之前,我回复信息并不是统一控制,可能某些模块我会直接回复了。但是我发现,即使我用echo回复了消息了,还是会执行echo之后的代码段,这不知道是啥情况。

时间: 2024-12-20 05:00:31

PHP微信公众开发笔记(八)的相关文章

PHP微信公众开发笔记(一)

笔记是先写在印象笔记上的,晚上没事的时候整理整理. PHP微信公众开发笔记系列 日期:2014.9.1 今天开始正式开始做班上的微信公众平台的开发者服务了.因为是第一次做这个,对PHP也不了解,所以一边学PHP,一边整理微信的公众平台,当做是自己的练手学习好了. 在登录了微信的公众平台之后,左边功能区的最底部就是开发者中心了: 在没有开启开发者服务前,这里面啥也没有.启用这个服务后,在网站上编辑的自动回复功能便取消了,用户跟微信公众平台的交互信息便会转到开发者接入的功能.废话少说,开启开发者功能

PHP微信公众开发笔记(二)

PHP微信公众开发笔记系列 日期:2014.9.1 需求分析: 在成功的开启了微信开发者服务之后,我们便需要开始做响应用户操作的功能了.其实做微信公众平台,当初的目的我就是想做成一个服务平台,因为刚大学毕业,同学各奔东西.有的时候可能我们会到一个陌生的城市去,那时可能就会想啊,这个城市有班上的同学在么?这时掏出手机,点开服务号输入这个城市名,就会返回一串信息,假如有同学在这个城市,就会列出联系信息之类的.当然也许会说,既然是熟悉的同学,那么肯定会知道联系方式之类的,还需要这样多此一举么.而我的考

PHP微信公众开发笔记(三)

PHP微信公众开发笔记系列 日期:2014.9.2 今天主要的任务是昨天提到的那个处理缓存信息的问题,我需要保存一些消息用来做二次判断. 首先,记录一些PHP语法知识吧. 1.PHP中字符串的连接语法: 在lua中,两个字符串的连接很简单,加入有两个字符串 "aaa";"bbb"; 需要将这两个字符串连接起来,只需要用两个句点 .. 便可以了:"aaa" .. "bbb"; 这里要注意,字符串与句点直接需要有空格,没有空格会报

PHP微信公众开发笔记(五)

PHP微信公众开发笔记系列 日期:2014.9.3 今天做了身份验证的功能,然后完善了下搜索功能.其实主要的是将整个代码结构整理了一番,应该可以说是模块化设计吧. 模块化设计我们的公众号. 因为我们之前提的功能需求中有: 1.菜单--查询功能.我考虑到后期功能的扩展,就想将这些分模块来实现:菜单模块(这样,今后我们需要添加新的菜单功能,可以直接在这个模块里操作,这样修正和维护也简单,在考虑到后期可能会分工协作的时候各开发者之间不会产生冲突): 2.数据库模块(这里就主要是负责数据库相关的工作,如

PHP微信公众开发笔记(六)

PHP微信公众开发笔记系列 日期:2014.9.4 今天主要是完善了搜索,加入了管理员模块,优化了身份验证,将学生信息管理封装为了一个类(整这个真是好累呀,主要是数据库操作那里语法老是出问题,一直是各种小问题) 感受: PHP开发没有断点.不能及时打印log真是好累呀(我是用sublime写的,然后直接微信公众号调试,累屎我了),错误信息经常不能及时发觉.或者说有些问题能通过断点排除掉了没能够排除.但是也说明了,我写代码还是太马虎了啊. 2014.9.10整理笔记: 写这个笔记的时候,在赶功能,

PHP微信公众开发笔记(七)

PHP微信公众开发笔记系列 日期:2014.9.6 这篇日记是补昨天的,昨天没来得及写: 主要实现的功能:模糊检索.问答系统.帮助系统 修复了:_SESSION 的id 调整了验证机制 要注意的:mysql的语法问题.mysql的模糊匹配.PHP的关联数组好像用count计算的话其大小会有原有数据的两倍大(即数组中只有两个数据,count会得到4,这个需要再验证,好像是用到了foreach就出现了这个问题) 学到了:PHP中数组的操作 2014.9.10整理笔记: 写这个笔记的时候,在赶功能,所

PHP微信公众开发笔记(九)

PHP微信公众开发笔记系列 日期:2014.9.9 中秋假期除了周六那天整了整,就没怎么动过了.今天上班主要是把既定的两个开发目标完成了:"八卦"."回忆"两个模块,这两个东西也很简单,也主要是涉及到数据库的操作而已.然后以图文形式回复就可以了.所以数据库中主要是保存了:文章标题.文章跳转连接.图片链接这三个字段信息. 2014.9.11整理笔记: 写这个笔记的时候,在赶功能,所以也就是简单的记几笔当时的工作内容,现在功能开发得差不多了,就来整理之前的笔记.当时就很

PHP微信公众开发笔记(十)

PHP微信公众开发笔记系列 日期:2014.9.10 在新浪SAE上用Storage存储资源,如果选择了资源防盗链的选项,那么将设置了防盗链的图片用作公众平台图文链接的封面,将显示不出图片. 2014.9.11整理笔记: 写这个笔记的时候,在赶功能,所以也就是简单的记几笔当时的工作内容,现在功能开发得差不多了,就来整理之前的笔记.当时就很简单的记录了上文的那几句. 主要是图文链接的那个封面问题.如果我直接用微信素材库里面的图片作为连接,那么图文链接的封面图片是显示不出来的.这个问题困扰了我好久,

微信公众开发URL和token填写详解

方法/步骤 作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见某些网页,或者给你发某些信息,你需要实时自动回复,所以你需要一个24小时为用户服务的服务器.我们所要填写的url就是你提供的服务器的地址,前提是这个服务器的地址你要能够访问,且能够控制.而token是用来验证的.   然后你需要一个服务器,服务器可以自己购买,也能用新浪sae,百度bae.方法是进入其开发者中心,注册一个开发者账号.并进行实名认证!(没有进行实名认证的小伙伴们是无法成功的).下面我们使用新浪sae做为例子来进