php cookie 统计,如何在PHP中使用cookie统计在线人数

如何在PHP中使用cookie统计在线人数

发布时间:2021-02-05 16:32:55

来源:亿速云

阅读:97

作者:Leah

这篇文章将为大家详细讲解有关如何在PHP中使用cookie统计在线人数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

online.php文件:<?php

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

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

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

$online = file($filename);

$nowtime = 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.'");';

?>

通过注释中的说明可知,如下js语句访问即可:

关于如何在PHP中使用cookie统计在线人数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值