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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
<?php /* @ PHP 在线人数统计程序 Copyright (c) by Pader 1:25 2009年1月7日 How to use it: <script src="online.php"></script> note: 一般独立在线人数统计程序都是统计在线的IP数,而这并不准确 例如局域网的访问者,比如公司,学校机房和网吧,虽然内网IP不同,但是外网IP都是一样 如果同一个局域网的无论多少人人访问你的网站则只被认为是一个人 这个小巧的程序解决了此问题,它以电脑为单为,每台电脑便算一个访问者 当然因为使用的是COOKIE,如果你在同一台电脑上使用两种不同核心的浏览器访问那就别当别论了 */ $filename = 'online.txt' ; //数据文件,如果没有新建 $cookiename = 'VGOTCN_OnLineCount' ; //cookie名称 $onlinetime = 600; //在线有效时间,单位:秒 (即600等于10分钟) @ $online = file( $filename ); //数据文件,如果没有新建 $nowtime = time(); $nowonline = array (); /* @ 得到仍然有效的数据 */ if (! empty ( $online )){ 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 ); |
php使用Session和文件统计在线人数
2020-10-30 23:55PHP教程网 PHP教程
这篇文章主要介绍了php使用Session和文件统计在线人数,本文直接给出实例代码,需要的朋友可以参考下
延伸 · 阅读
- 2022-03-10简单谈谈centos7中配置php
- 2022-03-08redis实现分布式session的解决方案
- 2022-03-08Flask 入门系列 Cookie与session的介绍
- 2022-03-06Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方
- 2022-03-05centos yum php 7.x 无需删除升级的方法
- 2022-03-05Centos7下PHP安装gd库的实例讲解
- PHP教程
laravel 输出最后执行sql 附:whereIn的使用方法
今天小编就为大家分享一篇laravel 输出最后执行sql 附:whereIn的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...
- PHP教程
CodeIgniter记录错误日志的方法全面总结
这篇文章主要介绍了CodeIgniter记录错误日志的方法,详细分析了CodeIgniter框架的文件结构与相应的功能,结合实例分析了CodeIgniter框架记录错误日志的实现技巧...
- PHP教程
PHP编程中的Session阻塞问题与解决方法分析
这篇文章主要介绍了PHP编程中的Session阻塞问题与解决方法,简单分析了php session阻塞的原理、原因与简单解决方法,需要的朋友可以参考下...
- PHP教程
PHP面向对象详解(三)
这篇文章主要介绍了PHP面向对象详解(三) 的相关资料,需要的朋友可以参考下...
- PHP教程
Linux平台PHP5.4设置FPM线程数量的方法
这篇文章主要介绍了Linux平台PHP5.4设置FPM线程数量的方法,较为详细的分析了Linux平台php5.4设置FPM的相关参数、功能及使用技巧,需要的朋友可以参考下...
- PHP教程
php eval函数用法 PHP中eval()函数小技巧
本函式可将字符串之中的变量值代入,通常用在处理数据库的数据上 ...
- PHP教程
php curl_init函数用法
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了 ...
- PHP教程
php比较两个指定的日期的实例讲解
在本篇文章里小编给大家整理了一篇关于php如何比较两个指定的日期的相关知识点内容,有需要的朋友们可以参考下。...