php 统计怎么做,(实用篇)php精确的统计在线人数的方法

这是一个非常精确的,通过php实现统计在线人数的方法,想知道怎么实现的请耐心阅读。

$filename='online.txt';//数据文件

$cookiename='VGOTCN_OnLineCount';//cookie名称

$onlinetime=600;//在线有效时间,单位:秒 (即600等于10分钟)

$online=file($filename);

//PHP file() 函数把整个文件读入一个数组中。与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false

$nowtime=$_SERVER['REQUEST_TIME'];

$nowonline=array();

//得到仍然有效的数据

foreach($online as $line){

$row=explode('|',$line);

$sesstime=trim($row[1]);

if(($nowtime - $sesstime)<=$onlinetime){//如果仍在有效时间内,则数据继续保存,否则被放弃不再统计

$nowonline[$row[0]]=$sesstime;//获取在线列表到数组,会话ID为键名,最后通信时间为键值

}

}

/*

@创建访问者通信状态

使用cookie通信

COOKIE 将在关闭浏览器时失效,但如果不关闭浏览器,此 COOKIE 将一直有效,直到程序设置的在线时间超时

*/

if(isset($_COOKIE[$cookiename])){//如果有COOKIE即并非初次访问则不添加人数并更新通信时间

$uid=$_COOKIE[$cookiename];

}else{//如果没有COOKIE即是初次访问

$vid=0;//初始化访问者ID

do{//给用户一个新ID

$vid++;

$uid='U'.$vid;

}while(array_key_exists($uid,$nowonline));

setcookie($cookiename,$uid);

}

$nowonline[$uid]=$nowtime;//更新现在的时间状态

//统计现在在线人数

$total_online=count($nowonline);

//写入数据

if($fp=@fopen($filename,'w')){

if(flock($fp,LOCK_EX)){

rewind($fp);

foreach($nowonline as $fuid=>$ftime){

$fline=$fuid.'|'.$ftime."\n";

@fputs($fp,$fline);

}

flock($fp,LOCK_UN);

fclose($fp);

}

}

echo 'document.write("'.$total_online.'");';

?>

利用php比较精确的统计在线人数的办法

利用php比较精确的统计在线人数的办法,注意这里所说的精确是指个数,如果需要精确在时间上,则需要根据实际情况调整代码中的有效时间.(自己没有写,从别人那拿过来的,先放着然后再研究)<?php // ...

jsp利用application统计在线人数的方法

PHP 实现精确统计在线人数功能

有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的.感谢阅读! 点此加入该群​jq.qq.com PHP对session对象的封装的很好,根据HTTP协议,每个范 ...

PHP实现统计在线人数功能示例

本文实例讲述了PHP实现统计在线人数的方法.分享给大家供大家参考,具体如下: 我记得ASP里面统计在线人数用application 这个对象就可以了.PHP怎么设计? PHP对session对象的封装 ...

Application 统计在线人数

MVC 统计在线人数: protected void Application_Start() { Application[; AreaRegistration.RegisterAllAreas(); ...

Javaweb统计在线人数的小栗子

最近在学习Javaweb相关的内容(不黑不吹之前对web开发零基础),下面通过一个统计在线人数的小栗子讲讲Servlet监听器吧 开发环境 eclipse  tomcat 7 先说说这个小栗子的构思: ...

asp&period;net MVC 统计在线人数功能实现

今天开发一个设计一个统计在线人数的统计.实现方式是在MVC 中,用户次执行一个Action请求完成后,向数据表中插入一条用户心跳记录,统计在线人数则是根据该记录,30分钟内有记录的用户则为在线状态. ...

Servlet监听器统计在线人数

监听器的作用是监听Web容器的有效事件,它由Servlet容器管理,利用Listener接口监听某个执行程序,并根据该程序的需求做出适应的响应. 例1 应用Servlet监听器统计在线人数. (1)创 ...

Mybatis 实用篇(四)返回值类型

Mybatis 实用篇(四)返回值类型 一.返回 List.Map List getUsers();

随机推荐

CentOS 7&period;2 无法生成 coredump文件

CentOS版本 cat /etc/centos-release  CentOS Linux release 7.2.1511 (Core) 设置ulimit -c ulimited 依旧无法生成co ...

约瑟夫环问题-循环链表VS数组

2013-08-18 21:27:50 循环链表.数组解决约瑟夫环问题的比较 注意几点: 循环链表的建立不难,在删除循环链表中元素时,用pCur->next != pCur判断结束: 每一轮计数 ...

理解Http协议(一)

本文对Http协议进行了简要的描述,说明了其用途的广泛性:通过代码对Http连接和Http请求消息的发送进行实现,希望能将这些抽象的过程直观的显示出来:最后对HttpURL和Http协议中“资源”这些 ...

第一次用Github desktop&lpar;mac&rpar;提交代码遇到的问题

1.新建代码仓库 2.生成密钥 ssh-keygen -C 'your@email.address' -t rsa 3.到根目录下的.ssh文件夹下找到id_rsa.pub文件,将里面的内容复制到下图 ...

H5移动端性能优化

概述 1. PC优化手段在Mobile侧同样适用 2. 在Mobile侧我们提出三秒种渲染完成首屏指标 3. 基于第二点,首屏加载3秒完成或使用Loading 4. 基于联通3G网络平均338KB/s ...

iOS开发常识

一.NSString 创建字符串.  NSString *astring = @"This is a String!"; 创建空字符串,给予赋值.  NSString *astri ...

标签(改变样式style)

id可以换为class,class对应的名字可以多个一样

box1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值