PHP检测用户是否关闭浏览器的方法

yipeiwu_com5年前PHP代码库

本文实例讲述了PHP检测用户是否关闭浏览器的方法。分享给大家供大家参考,具体如下:

1、例子1

echo str_repeat(" ",3000);
ignore_user_abort(true); 
mylog('online');
while (true) {
   /*
   * 1、程序正常结束   connection_status 0
   * 2、点击浏览器“停止”按钮   connection_status 1
   * 3、超时  connection_status 2
   */
 echo "test<br>\n"; //注意程序一定要有输出,否则ABORTED状态是检测不到的
 flush();
 sleep(1);
 if (connection_status()!=0){
    mylog('offline');
    die('end the script');
 }
}
function mylog($str)
{
   $fp = fopen('e:/abort.txt', 'a');
   $str = date('Y-m-d H:i:s').$str."\r\n";
   fwrite($fp, $str);
   fclose($fp);
}

2.例子2

function foo() {
 $s = 'connection_status '. connection_status();
 mylog($s);
} 
register_shutdown_function('foo');//script processing is complete or when exit() is called
set_time_limit(10);
for($i=0; $i<10000000; $i++)
 echo $i;
function mylog($str)
{
  $fp = fopen('e:/abort.txt', 'a');
  $str = date('Y-m-d H:i:s').$str."\r\n";
  fwrite($fp, $str);
  fclose($fp);
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《PHP错误与异常处理方法总结》及《php常用函数与技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

教你识别简单的免查杀PHP后门

一个最常见的一句话后门可能写作这样 <?php @eval($_POST['cmd']);?> 或这样 <?php @asser...

跨浏览器PHP下载文件名中的中文乱码问题解决方法

本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法。分享给大家供大家参考。具体如下: 复制代码 代码如下:<?php $ua = $_SERVER["HTTP_...

PHP写日志的实现方法

本文实例讲述了PHP写日志的实现方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下:function logError($content)  { ...

php 获取本机外网/公网IP的代码

大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP, 但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了。 经...

PHP文件读写操作之文件写入代码

在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基...