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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
php字符串过滤与替换小结
Jan 26 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 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
php 获取mysql数据库信息代码
2009/03/12 PHP
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
php判断访问IP的方法
2015/06/19 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
json数据的列循环示例
2013/09/06 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
python使用super()出现错误解决办法
2017/08/14 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
印度在线杂货店:bigbasket
2018/08/23 全球购物
什么是Rollback Segment
2013/04/22 面试题
公司任命书范本
2014/06/04 职场文书
运动与健康自我评价
2015/03/09 职场文书
诚信高考倡议书
2019/06/24 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS