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 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
缓存技术详谈―php
Dec 14 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
php批量删除操作代码分享
Feb 26 PHP
php中的异常和错误浅析
May 03 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python 学习教程之networkx
2019/04/15 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
python 模块导入问题汇总
2021/02/01 Python
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
轻松制作精彩视频:Animoto
2018/09/19 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
七匹狼男装广告词
2014/03/21 职场文书
六一儿童节活动总结
2014/08/27 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
《窃读记》教学反思
2016/02/18 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android