php实现当前用户在线人数
原理:根据不同的IP统计出当前有多少人在线。
实现方式:可以用数据库,也可以用文本。
我这里用了文本实现。
<?php
/**
*@ Date 2010.04.07
*@ Author 华夏之星 PHP100.com
*@ Blog http://hi.baidu.com/woaidelphi/blog
*/
$user_online = "count.php"; //保存人数的文件
touch($user_online);//如果没有此文件,则创建
$timeout = 30;//30秒内没动作者,认为掉线
$user_arr = file_get_contents($user_online);
$user_arr = explode('#',rtrim($user_arr,'#'));print_r($user_arr);
$temp = array();
foreach($user_arr as $value){
$user = explode(",",trim($value));
if (($user[0] != getenv('REMOTE_ADDR')) && ($user[1] >
time())) {//如果不是本用户IP并时间没有超时则放入到数组中
array_push($temp,$user[0].",".$user[1]);
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout)).'#');
//保存本用户的信息
$user_arr = implode("#",$temp);
//写入文件
$fp = fopen($user_online,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$user_arr);
flock($fp,LOCK_UN);
fclose($fp);
echo "当前有".count($temp)."人在线";
?>
相关文档:
1.用户定义排序:usort($array, functionName);其中functionName为用户定义的函数名,用户定义的函数指定排序规则,比较数组中两个元素的大小,大于返回正数,小于返回负数,等于返回0。2.反向用户排序:用户定义函数时,比较数组中两个元素的大小,大于返回负数,小于返回正数,等于返回0。$fruits = array(array('APP', ' ......
最近有个小东西要查看mssql数据库是用php实现的,以前我用php5.2时感觉挺简单的所以想php5.3也应该很简单的
为什么要用php5.3呢因为我想用sqlite3.0的啊,因为php5.2的不支持sqlite3.0的啊,所以我特意去下了5.3了下载回来了才发现5.3里没有mssql的dll扩展了,郁闷啊,不管这么多先用起那sqlite3.0再说了
sqlite3.0的部分 ......
一直认为php中字字符串比较直接用==来判断还是很方便的,但今天遇到的一个问题,彻底让我明白了使用strcmp的必要性.这个问题很多老手都可能会忽略的.
今天在登录自己做的程序时,在输入验证码后,想直接按小键盘上回车登录(程序检查了回车事件),结果按回车按成了键盘上回车键旁边小数的那个键,验证码栏就多输入了一个点。由于 ......
session是网站保存用户信息的一种手段,应用相当广泛。例如第五届排行榜就使用了session。经过对第五届排行榜的修改,我总结了一下php中session的用法。
(一)开始session
在每一次使用session之前,都要加上这一句:“session_start();”。顾名思义,这个函数的作用就是开始使用session。
(二)注 ......
使用方法:
自动裁切:
程序会按照图片的尺寸从中部裁切最大的正方形,并按目标尺寸进行缩略
$t->setSrcImg("img/test.jpg");
$t->setCutType(1);//这一句就OK了
$t->setDstImg("tmp/new_test.jpg");
$t-&g ......