php判断用户是否掉线及关闭网页的方法分享

发布时间:2020-08-01编辑:脚本学堂
本文介绍下,php实现判断用户是否掉线,如果掉线则关闭网页。有需要的朋友参考下。

要实现判断用户已掉线并关闭网页,主要用到方法connection_status 和 connection_aborted。

通过一个例子,来了解下它们的用法:

<?
echo str_repeat(" ",300);
//以下不可省略,否则用户断线,php(线程)立即终止,不会执行" if  connection_status()!=0||connection_aborted){"
ignore_user_abort(true); 
while (true) {
   echo "test<br>/n;//必须有输出, 否则线程会一直执行下去,直到重新启动apche(测试过程2小时),输出也可以写到//注释2处
   flush();
   if (connection_status()!=0||connection_aborted()){
     //用户退出了
   }
   //注释2
   sleep(2);
//by www.jb200.com
}
?>

下面是另一个例子:

<?
//检测是否掉线,然后关闭网页
//编辑:www.jb200.com
echo str_repeat(" ",300);
ignore_user_abort(true); //without this, current apache thread will terminate Immediately,so
 the code "if (connection_status()!=0){" will not be executed as the script was broken off!
while (true) {
         echo "test<br>/n";//if there's no any output, this script will execute endless,
 which means the current apache thread will not end until you restart apache and connection_status()will 
keep 0 and connection_aborted() will keep false.
         flush();
         sleep(2);
         if (connection_status()!=0){
                 include ('dbconnect.inc');
                 $sql="delete from online_users where online_user=$user";
                 $sql_exec=pg_exec($vChatDB, $sql);
                 die(); //kills the script
         }
}
?>