PHP微信公众开发笔记系列
日期:2014.9.2
今天主要的任务是昨天提到的那个处理缓存信息的问题,我需要保存一些消息用来做二次判断。
首先,记录一些PHP语法知识吧。
1、PHP中字符串的连接语法:
在lua中,两个字符串的连接很简单,加入有两个字符串 "aaa";"bbb"; 需要将这两个字符串连接起来,只需要用两个句点 .. 便可以了:"aaa" .. "bbb"; 这里要注意,字符串与句点直接需要有空格,没有空格会报错;
而在PHP中,连接只需要一个句点就可以了:"aaa"."bbb"; 而且不需要强制在字符串和句点之间用空格;
2、得到时间,转换为日期格式:
使用date函数,格式为:date('Y-m-d H:i:s',time());挺简单的,记录一下
公众平台开发需求完成进度。
现在回到昨天留下的那个任务:利用session缓存记录信息,实现我们构想的那个菜单:
php中关于session的使用,我不是很清楚,所以就一直度娘度娘的,折腾了一番,总算是实现了我的功能需求了,不过还是觉得有一些不足的地方,留给以后再来修正吧。
昨天提到了,我要实现的菜单,希望能记住上一条信息。即提醒用户输入查询,进入查询菜单,在用户发送过来“查询”之后,下一条信息就应该转入查询菜单了,即我需要记住用户发送过“查询”这个信息。在度娘度了好久之后,查找到了要么就用数据库,要么就用session,在PHP中用数据库还不会,然后我感觉就简单的处理一下记住信息应该不需要动用数据库,所以采用的是使用session。
使用Session来实现我们的需求:
php中关于session具体该怎么用,以后还是需要度娘来详细了解一番,现在我们这只是简单的使用。
在查阅资料的时候,有网友提到用用户的username作为唯一id,这样就使得针对每个用户存储的信息会不一致(因为我们现在是服务器发送消息,每个用户都会发送消息过来,不能影响别的用户的使用),所以代码实现如下:
session_id($postObj->fromUsername); //这个是微信服务器post过来的xml数据包中用户名字,用这个作为id
session_start(); //这个应该是开启session的意思吧?
而我这两行代码该放到哪里也不是很清楚,现在我是将这个代码放在 responseMsg函数中了,不知道是不是这样的,后面的测试是有用的。
开启了session之后,就是记录信息了:
$_SESSION['menu_type'] = $this->getUserMenu($textWord); //这里的getusermenu是我用来根据用户输入得到菜单类型的函数;记录信息用到了$_SESSION这个变量,这里是以数组形式使用??
在我们记录好了信息之后,该进行信息的判断了,使用到:
isset($_SESSION['menu_type']); //用isset来判断我们是否设置了这个值,这样就能判断用户是否选择了一个菜单了
然后在我们不需要使用的时候,则使用以下函数来销毁这个:
unset($_SESSION['menu_type'];
在代码中再做相应的调整,便可以实现我们的需求了。然后现在觉得不足的地方是,我该在哪个时候销毁保存的用户选择的菜单类型呢?假如用户选择了“查询”菜单,那么我们这边就是响应用户的查询行为了,至少在用户查询的过程中我们不应该销毁掉保存的菜单类型。我感觉合理的销毁有三种情况:用户关掉了对话框(即用户退出了和我们这个公众号的聊天框,但网上没查到怎么知道用户退出了);用户长时间内没有执行查询操作(即用户在选择了“查询”菜单的前提下,经过了一个给定的时间内没有执行相应的查询操作,这个时候自动销毁);最后就是用户自动选择退出。不销毁记录的信息,会出现这样的问题,在用户选择了“查询”菜单,然后用户退出了与公众号的聊天,下一次再进入的时候,还会保存记录的用户选择的菜单信息,感觉这样是不合理的。
抛开上面提到的问题,至少这一步我们需要的功能是实现了,有关的问题慢慢修复吧。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

WebStorm Mac version
Useful JavaScript development tools

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.
