PHP记录页面停留时间的方法


Posted in PHP onMarch 30, 2016

本文实例讲述了PHP记录页面停留时间的方法。分享给大家供大家参考,具体如下:

首先在要监控的页面添加JS如下

<script>
var dt1 = new Date();
window.onbeforeunload = function(){
  var dt2 = new Date();
  var ms = dt2.getTime() - dt1.getTime();
  var img = new Image();
  img.src = 'log.php?stay_ms=' + ms;
}
</script>

log.php 代码如下

<?php
$refer = '';
if (isset($_SERVER['HTTP_REFERER']))
{
  $refer = $_SERVER['HTTP_REFERER'];
}
$user_agent = '';
if (isset($_SERVER['HTTP_USER_AGENT']))
{
  $user_agent = $_SERVER['HTTP_USER_AGENT'];
}
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_GET['stay_ms']))
{
  $log = '[' . date("Y-m-d H:i:s") . '] ' . $ip . ' ' . $refer . ' @ ' . number_format($_GET['stay_ms']) . "ms\r\n";
  file_put_contents("log/log_" . date("Y-m-d") . ".txt", $log, FILE_APPEND);
}
if ($_SERVER['QUERY_STRING'] == '' || isset($_GET['day']))
{
  $day = isset($_GET['day']) ? $_GET['day'] : date("Y-m-d");
  $file = "log/log_" .$day . ".txt";
  if (file_exists($file))
  {
    $log = file_get_contents($file);
    echo nl2br($log);
  }
}

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

PHP 相关文章推荐
MySQL修改密码方法总结
Mar 25 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
用PHP代码给图片加水印
Jul 01 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
thinkphp分页集成实例
Jul 24 PHP
在Laravel中使用DataTables插件的方法
May 29 PHP
解决Laravel5.5下的toArray问题
Oct 15 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 #PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 #PHP
Laravel路由设定和子路由设定实例分析
Mar 30 #PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 #PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 #PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 #PHP
PHP实现可自定义样式的分页类
Mar 29 #PHP
You might like
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP中的output_buffering详细介绍
2014/09/27 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
js 通用订单代码
2013/12/23 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
angular之ng-template模板加载
2017/11/09 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python中pycurl库的用法实例
2014/09/30 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
树莓派使用USB摄像头和motion实现监控
2019/06/22 Python
使用python实现多维数据降维操作
2020/02/24 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
教师个人的自我评价分享
2014/01/02 职场文书
大学新生军训感言
2014/02/25 职场文书
网络编辑求职信
2014/04/30 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
小学捐书活动总结
2014/07/05 职场文书
2014年计生工作总结
2014/11/21 职场文书
工程进度款催款函
2015/06/24 职场文书
解决 redis 无法远程连接
2022/05/15 Redis
Golang实现可重入锁的示例代码
2022/05/25 Golang