首页 > 开发 > PHP > 正文

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

2024-05-04 22:01:37
字体:大 中 小
来源:转载
供稿:网友

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

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

  1. <script> 
  2.  
  3. var dt1 = new Date(); 
  4.  
  5. window.onbeforeunload = function(){ 
  6.  
  7.   var dt2 = new Date(); 
  8.  
  9.   var ms = dt2.getTime() - dt1.getTime(); 
  10.  
  11.   var img = new Image(); 
  12.  
  13.   img.src = 'log.php?stay_ms=' + ms; 
  14.  
  15. } 
  16.  
  17. </script> 

log.php 代码如下

  1. <?php 
  2.  
  3. $refer = ''; 
  4.  
  5. if (isset($_SERVER['HTTP_REFERER'])) 
  6.  
  7. { 
  8.  
  9.   $refer = $_SERVER['HTTP_REFERER']; 
  10.  
  11. } 
  12.  
  13. $user_agent = ''; 
  14.  
  15. if (isset($_SERVER['HTTP_USER_AGENT'])) 
  16.  
  17. { 
  18.  
  19.   $user_agent = $_SERVER['HTTP_USER_AGENT']; 
  20.  
  21. } 
  22.  
  23. $ip = $_SERVER['REMOTE_ADDR']; 
  24.  
  25. if (isset($_GET['stay_ms'])) 
  26.  
  27. { 
  28.  
  29.   $log = '[' . date("Y-m-d H:i:s") . '] ' . $ip . ' ' . $refer . ' @ ' . number_format($_GET['stay_ms']) . "ms/r/n"; 
  30.  
  31.   file_put_contents("log/log_" . date("Y-m-d") . ".txt", $log, FILE_APPEND); 
  32.  
  33. } 
  34.  
  35. if ($_SERVER['QUERY_STRING'] == '' || isset($_GET['day'])) 
  36.  
  37. { 
  38.  
  39.   $day = isset($_GET['day']) ? $_GET['day'] : date("Y-m-d"); 
  40.  
  41.   $file = "log/log_" .$day . ".txt"; 
  42.  
  43.   if (file_exists($file)) 
  44.  
  45.   { 
  46.  
  47.     $log = file_get_contents($file); 
  48.  
  49.     echo nl2br($log); 
  50.  
  51.   } 
  52.  
  53. } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表