以上通过获取到事件推送消息中的URL地址信息和本地文件操作,实现菜单按钮访问量的统计,效果如图所示
首先,重写IndexController.class.php控制器文件中的myMenu()方法,修改微信公众平台测试号的菜单为view。这里的代码如下:
- // 创建/查看/删除 菜单
- public function myMenu()
- {
- $data = '{
- "button":[
- {
- "type":"view",
- "name":"查看新闻",
- "url":"http://127.0.0.1"
- }
- ]}';
- import('@.Lib.Wx.WxMenu');
- $wx = new \WxMenu(APP_ID , APP_SECRET);
- dump($wx->createMenu($data));
- }
复制代码其次,在configToken()方法里面新增的对view类型事件进行处理的代码如下
- //View事件处理
- if($this->data['MsgType'] == 'event' && $this->data['Event'] == 'VIEW')
- {
- // 读取本地文件存储的访问量统计数据
- $view_info = file_get_contents('./website_pv_count.json');
- $new_arr['url'] = $this->data['EventKey'];
- $view_arr = json_decode($view_info , true);
- // 若存在则pv访问量增加1,若不存在则写入默认值
- if($view_info !== false)
- {
- $new_arr['pv'] = $view_arr['pv'] + 1;
- }
- else
- {
- $new_arr['pv'] = 1;
- }
- // 把访问量统计写入到本地
- file_put_contents('./website_pv_count.json', json_encode($new_arr));
- }
复制代码当用户单击了菜单访问按钮后,系统根据事件类型判断先找到本地是否存储的访问量统计文件website_pv_count.json,再把统计数据进行累加或者初始化,然后更新本地的统计信息存储文件website_pv_count.json。增加 showWebSitePv()方法后,可以方便地在游览器查看相应的统计数据
- // 查看网址访问量
- public function showWebSitePv()
- {
- header('Content-type:text/html;charset=utf-8');
- echo "<pre>";
- print_r(json_decode(file_get_contents('./website_pv_count.json')));
- die;
- }
复制代码