当前位置: 首页 > news >正文

PHP+memcache实现的网站在线人数统计代码

今天闲来无事,想在博客统计中显示在线人数。在网上找了好多例子,不是数据库存储数据就是文件存储,代码也看起来过于复杂。

晚上回来后,构思了下,看到我服务器中安装有 Memcache 服务,何不用 Memcache 实现呢。

下面就来讲下实现过程:

效果图:

实现代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$mc = new Memcache ();
 
// 连接memcache
$mc ->connect ( "127.0.0.1" , 11211 );
 
// 获取 在线用户 IP 和 在线时间数据
$online_members = $mc ->get ( 'online_members' );
 
// 如果为空,初始化数据
if (! $online_members ) {
  $online_members = array ();
}
 
// 获取用户ip
$ip = $_SERVER [ "REMOTE_ADDR" ];
 
// 为访问用户重新设置在线时间
$online_members [ $ip ] = time ();
 
foreach ( $online_members as $k => $v ) {
  // 如果三分钟后再未访问页面,刚视为过期
  if (time() - $v > 180) {
  unset( $online_members [ $k ]);
  }
}
 
// 重新设置在线用户数据
$mc ->set ( 'online_members' , $online_members );
 
// 重新获取在线用户数据
$online_members = $mc ->get ( 'online_members' );
 
// 输入统计在线人数
echo count ( $online_members );
?>

相关文章:

  • 正则表达式速查表
  • PHP接入支付宝的流程
  • MySQL存储过程中in、out、inout参数使用实际案例
  • PHP算法面试题
  • PHP常用几种设计模式的应用场景
  • PHP ob缓存页面静态化技术
  • 伪静态以及应用(rewrite)
  • 服务器表单处理
  • PHP+JQ实现ajax
  • PHP+JS实现Ajax
  • 从输入url到显示网页,后台发生了什么?
  • array_map,array_walk,array_filter的区别
  • ThinkPHP5.0的助手函数汇总
  • PHP实现微信支付流程分享
  • PHP开发微信支付和支付宝支付实例
  • python3.6+scrapy+mysql 爬虫实战
  • 分享一款快速APP功能测试工具
  • 【个人向】《HTTP图解》阅后小结
  • JavaScript类型识别
  • Joomla 2.x, 3.x useful code cheatsheet
  • JS实现简单的MVC模式开发小游戏
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • NSTimer学习笔记
  • Sass 快速入门教程
  • springboot_database项目介绍
  • Spring框架之我见(三)——IOC、AOP
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 二维平面内的碰撞检测【一】
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 排序算法之--选择排序
  • 前端临床手札——文件上传
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信小程序:实现悬浮返回和分享按钮
  • 原生 js 实现移动端 Touch 滑动反弹
  • Nginx实现动静分离
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #100天计划# 2013年9月29日
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • ()、[]、{}、(())、[[]]命令替换
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3)STL算法之搜索
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十一)图像的罗伯特梯度锐化
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (万字长文)Spring的核心知识尽揽其中
  • (转)LINQ之路
  • ***测试-HTTP方法