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 相关文章推荐
php中的时间处理
Oct 09 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php构造函数实例讲解
Nov 13 PHP
PHP微框架Dispatch简介
Jun 12 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
Oct 15 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
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[原创]pip和pygal的安装实例教程
2017/12/07 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
Pyqt5实现英文学习词典
2019/06/24 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
django列表筛选功能的实现代码
2020/03/27 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
投标承诺书怎么写
2014/05/24 职场文书
2015年元旦标语大全
2014/12/09 职场文书
百年校庆感言
2015/08/01 职场文书
班主任寄语2016
2015/12/04 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis