五指cms内容浏览量实现方法

实现功能:文章浏览量的统计显示

实现的详细:对文章的总浏览量、当天浏览量、当周浏览量、当月浏览量进行统计

实现代码位置:coreframe/app/content/stat.php

实现的详细代码

 1 <?php
 2 // +----------------------------------------------------------------------
 3 /**
 4  * 内容模块访问统计
 5  */
 6 defined(‘IN_WZ‘) or exit(‘No direct script access allowed‘);
 7 $db = load_class(‘db‘);
 8 $formdata = array();
 9 $formdata[‘id‘] = isset($GLOBALS[‘id‘]) ? intval($GLOBALS[‘id‘]) : exit(‘-1‘);
10 $formdata[‘cid‘] = isset($GLOBALS[‘cid‘]) ? intval($GLOBALS[‘cid‘]) : exit(‘-2‘);
11 if(!$formdata[‘id‘] || !$formdata[‘cid‘]) exit(‘-3‘);
12 $formdata[‘addtime‘] = SYS_TIME;
13 $formdata[‘ip‘] = get_ip();
14
15 $qkey = get_cookie(‘qkey‘);
16 if($qkey==‘‘) {
17     $formdata[‘qkey‘] = uniqid();//13位 唯一值,从cookie中获取和写入,用于记录uv和pv
18     $lefttime = SYS_TIME+2592000;
19     set_cookie(‘qkey‘,$formdata[‘qkey‘],$lefttime);
20 } else {
21     $formdata[‘qkey‘] = $qkey;
22 }
23
24 $db->insert(‘content_stat‘,$formdata);
25
26 $r = $db->get_one(‘content_rank‘,array(‘cid‘=>$formdata[‘cid‘],‘id‘=>$formdata[‘id‘]));
27 if(!$r) {
28     $db->insert(‘content_rank‘, array(‘cid‘=>$formdata[‘cid‘],‘id‘=>$formdata[‘id‘]));
29     $r[‘views‘] = 0;
30 }
31 $views = $r[‘views‘] + 1;
32 $yesterdayviews = (date(‘Ymd‘, $r[‘updatetime‘]) == date(‘Ymd‘, strtotime(‘-1 day‘))) ? $r[‘dayviews‘] : $r[‘yesterdayviews‘];
33 $dayviews = (date(‘Ymd‘, $r[‘updatetime‘]) == date(‘Ymd‘, SYS_TIME)) ? ($r[‘dayviews‘] + 1) : 1;
34 $weekviews = (date(‘YW‘, $r[‘updatetime‘]) == date(‘YW‘, SYS_TIME)) ? ($r[‘weekviews‘] + 1) : 1;
35 $monthviews = (date(‘Ym‘, $r[‘updatetime‘]) == date(‘Ym‘, SYS_TIME)) ? ($r[‘monthviews‘] + 1) : 1;
36 $db_array = array(‘views‘=>$views,‘yesterdayviews‘=>$yesterdayviews,‘dayviews‘=>$dayviews,‘weekviews‘=>$weekviews,‘monthviews‘=>$monthviews,‘updatetime‘=>SYS_TIME);
37
38 $db->update(‘content_rank‘,$db_array, array(‘cid‘=>$formdata[‘cid‘],‘id‘=>$formdata[‘id‘]));
39
40
41 echo ‘$("#hits").html(‘.$views.‘)‘;
42 ?>

数据库结构:

DROP TABLE IF EXISTS `wz_content_rank`;
CREATE TABLE `wz_content_rank` (
  `cid` mediumint(10) unsigned NOT NULL,
  `id` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  `views` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  `yesterdayviews` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  `dayviews` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  `weekviews` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  `monthviews` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  `updatetime` int(10) unsigned NOT NULL DEFAULT ‘0‘,
  UNIQUE KEY `cid` (`cid`,`id`),
  KEY `views` (`views`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

加载方式:

内容页面调用js代码

<script type="text/javascript" src="{WEBURL}index.php?f=stat.php"></script>

显示文章浏览量

<span id="hit">此处显示浏览量</span>

注:页面中需要引入jQuery框架。

时间: 2024-11-05 11:51:37

五指cms内容浏览量实现方法的相关文章

redis实现点击量/浏览量

java+redis实现高性能新闻点击量更新 1.redis简单介绍.它用来做高性能数据存取 是极好的. 2.实例:新闻点击量. 1)每次刷新,我们并不一定要往数据库里面立即更新数据 2)可以在redis里面做key-value存储 3)设置一个阀值,当用户刷新到一定数量时才更新到数据库中 3.本课时在windows下部署. 4.linux部署 后面也会讲到 课程地址 :http://edu.51cto.com/index.php?do=lesson&id=42104 -------------

第18章 大浏览量系统的静态化结构设计

18.1 淘宝大浏览量商品详情系统简介 HTTP请求经过负载均衡设备分配到某个域名对应的集群,经过Nginx代理到JBoss或者Tomcat容器,由他们负责具体处理用户请求.目前这些大浏览量的系统大部分需要读取的数据都已经直接走 K/V 缓存了,不会直接从DB获取数据. 18.2 系统面临哪些挑战 突发的流量冲击: 攻击和恶意请求: 18.3 淘宝前台系统的优化历程 系统拆分,静态文件合并,前段页面异步优化和JSON化 去DB依赖.引入缓存.提升单机的QPS,关注用户体验. Velocity,

CMS: 内容管理系统

CMS是Content Management System的缩写,意为"内容管理系统". 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场.业界公认的国内比较权威的产品有思拓合众CmsTop.PHPCMS.TurboCMS.对于内容管理,业界还没有一个统一的定义,不同的机构有不同的理解. 产生: 随着网络应用的丰富和发展,很多网站往往不能迅速跟进大量信息衍生及业务模式变革的脚步,常常需要花费许多时间.人力和物力来处理信息更新和维护工作:遇到网站扩充的时候,整合内外网

Stack Overflow上59万浏览量的提问:为什么会发生ArrayIndexOutOfBoundsException?

在逛 Stack Overflow 的时候,发现了一些访问量像昆仑山一样高的问题,比如说这个:为什么会发生 ArrayIndexOutOfBoundsException?这样看似简单到不值得一问的问题,访问量足足有 69万+,这不得了啊!说明有不少的初级程序员被这个问题困扰过.实话实说吧,我也有点吃不准为什么. 来回顾一下提问者的问题: ArrayIndexOutOfBoundsException 究竟意味着什么?我该如何摆脱这个错误. 如果你也曾被这个问题困扰过,或者正在被困扰,就请随我一起来

Python 自动刷博客浏览量

哈哈,今天的话题有点那什么了哈.咱们应该秉承学习技术的角度来看,那么就开始今天的话题吧. 思路来源 今天很偶然的一个机会,听到别人在谈论现在的"刷量"行为,于是就激发了我的好奇心.然后看了下requests模块正好对我有用,就写了一个简单的测试用例.神奇的发现这一招竟然是管用的.那还等什么,开刷咯. 前奏 思路很简单,就是一个发送请求的实现,就可以了.代码如下: headers = { 'referer':'http://blog.csdn.net/', 'User-Agent':'M

java刷视频浏览量,点赞量

说明 分析 开始操作 说明 这几天班主任一直让我们访问一个网页来观察看视频,增加访问次数.每个班级还有指定的名额...而且经过我的测试,点赞次数是在观看视频一会才出现的.. 可是身为计算机专业的 肯定不想一直点啊 点啊 于是我就有了一个大胆的想法 分析 于是我就查看网页的源代码 这行代码是弹出点赞的时间为18s. 18秒后发生了什么呢 ?继续看 可以看到这个弹出点赞的父div为class="video_mask" 而且默认的显示框类型为none,即不显示. 好吧 废话不多说. 主要看下

五指cms安装说明

1.五指cms目录结构说明 |-- coreframe                   #框架目录 |   |-- app                     #模块(应用程序)目录 |   |   |-- affiche             #公告模块 |   |   |-- appshop             #应用商城 |   |   |-- attachment          #附件模块 |   |   |-- collect             #采集器 |  

五指CMS发布,主打高性能

近日,五指CMS正式发布.给沉静已久的国内 CMS 行业引来不少的关注.五指CMS由原PHPCMS v9的负责人王参加主导开发.我们可以看到,由于移动互联网以及大数据的崛起,个人站长市场的逐渐减少,国内几个著名的CMS系统这几天几乎都处于停滞状态,这样给很多用户带来了很多维护上的麻烦.针对这些问题所以我们决定重新开发一套CMS系统,这套系统针对时下的移动互联网.大数据处理等做了很多创新的设计五指cms的负责人如是说. 首先,CMS是个内容管理系统,在现今的大数据时代数据的承载能力是一个CMS的首

简易nodejs爬虫抓取博客园指定用户的文章及浏览量

需要安装nodejs和cheerio模块 实现了自定义用户,自定义页数,抓取完毕自动停止无重复 可以按需修改文章类和评论的类名 用法: 首先 npm install cheerio 执行 node cnblog [username] 文件结果保存在res/cnblog.txt //cnblog.jsvar http = require('http') var fs = require('fs') var path = require('path') var cheerio = require('