PHP获取在线人数思路

如果能让一个php脚本在服务器后台运行。我写一个定时刷新就行了。

现在客户端每访问一次服务器,就会刷新当前时间。如果时间差距过大就判断为离线。

但是这个是在客户端访问服务器的情况下触发的。客户端的网页都关闭了,就不好触发了。

难道要每一个客户端都扫一遍服务器上的用户信息,然后再判断哪些没有离线?求思路。

在客户端的网页上加一个定时器,每隔一段时间向服务器发送一个HttpRequest,如果收不到,就判断为离线

在于时间要插入数据库, 你统计10分钟内人数就是在线人数,
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-12-04
用register_shutdown_function函数就行了。下面是例子。

<?php
function shutdown($user)
{
// This is our shutdown function, in
// here we can do any last operations
// before the script is complete.

// echo 'Script executed with success', PHP_EOL;
file_put_contents('d:/a.php',$user."已离线\n",8); //写入到d盘a.php文件中,追加方式。

}

register_shutdown_function('shutdown','abc'); //每个脚本加入这句就行了。

sleep(10); //这是本地测试用的,方便你关闭网页。
?>本回答被提问者和网友采纳
第2个回答  2012-10-05
在客户端的网页上加一个定时器,每隔一段时间向服务器发送一个HttpRequest,如果收不到,就判断为离线。追问

是这样,但是收不到之后。客户端已经消失了。服务器又没有后台运行的脚本。谁去判断它为离线?

第3个回答  2012-10-05
在客户端网页前台加上onbeforeunload函数,在客户关闭网页的时候向后台传递信息。。。。
相似回答