本文实例讲述了php简单统计在线人数的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
//首先你要有读写文件的权限
//本程序可以直接运行,第一次报错,以缶涂梢?
$online_log = "count.dat" ; //保存人数的文件,
$timeout = 30; //30秒内没动作者,认为掉线
$entries = file( $online_log );
$temp = array ();
for ( $i =0; $i < count ( $entries ); $i ++) {
$entry = explode ( "," ,trim( $entries [ $i ]));
if (( $entry [0] != getenv ( 'REMOTE_ADDR' )) && ( $entry [1] > time())) {
array_push ( $temp , $entry [0]. "," . $entry [1]. "\n" ); //取出其他浏览者的信息,并去掉超时者,保存进$temp
}
}
array_push ( $temp , getenv ( 'REMOTE_ADDR' ). "," .(time() + ( $timeout )). "\n" ); //更新浏览者的时间
$users_online = count ( $temp ); //计算在线人数
$entries = implode( "" , $temp );
//写入文件
$fp = fopen ( $online_log , "w" );
flock ( $fp ,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs ( $fp , $entries );
flock ( $fp ,LOCK_UN);
fclose( $fp );
echo "当前有" . $users_online . "人在线" ;
?>
|
使用方法:
将以上代码保存为count.php,在要用到的位置:
1
|
include ( "count.php" );
|
希望本文所述对大家PHP程序设计有所帮助。