- 48浏览
- 2022-10-08
一个比较奇葩的要求,需要在TP中记录用户停留访问的时间,而TP已经生成了纯HTML静态网页,在网页中添加时间记录是需要PHP文件配合的0,时间记录是要写在PHP文件里面的,而包含PHP文件的是JS引入,这就好比网页中的浏览数一个道理,好了,我们先看一下,HTML网页中的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);
}
}
这里把用户停留页面的时间生成了一个log 的 txt 文件,如果相要记录在数据库里面的话,直接在PHP中写逻辑就可以了,这里的逻辑是所有用户的访问时间,如果我们要记录单个会员用户的话,同样在PHP中写逻辑就OK了。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。