PHP用户活动监控与分析系统

<?php

class UserActivityMonitor {
    private $logFile;

    public function __construct($logFile = 'user_activity.log') {
        $this->logFile = $logFile;
    }

    // 记录用户活动
    public function logActivity($userId, $activityType, $pageUrl, $additionalData = []) {
        $logEntry = [
            'timestamp' => date('Y-m-d H:i:s'),
            'user_id' => $userId,
            'activity_type' => $activityType,
            'page_url' => $pageUrl,
            'additional_data' => $additionalData
        ];

        // 将日志条目写入文件
        file_put_contents($this->logFile, json_encode($logEntry) . PHP_EOL, FILE_APPEND);
    }

    // 获取日志文件中的所有用户活动记录
    public function getLogs() {
        if (file_exists($this->logFile)) {
            $logs = file($this->logFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
            return array_map('json_decode', $logs);
        }
        return [];
    }

    // 获取特定用户的活动日志
    public function getUserActivity($userId) {
        $logs = $this->getLogs();
        return array_filter($logs, function($log) use ($userId) {
            return $log->user_id == $userId;
        });
    }

    // 分析用户活跃度
    public function analyzeUserActivity() {
        $logs = $this->getLogs();
        $userActivity = [];

        foreach ($logs as $log) {
            if (!isset($userActivity[$log->user_id])) {
                $userActivity[$log->user_id] = 0;
            }
            $userActivity[$log->user_id]++;
        }

        arsort($userActivity); // 按活动次数降序排列

        return $userActivity;
    }
}

// 示例使用
$monitor = new UserActivityMonitor();

// 模拟记录用户活动
$monitor->logActivity(1, 'login', '/login');
$monitor->logActivity(1, 'view_page', '/dashboard');
$monitor->logActivity(2, 'login', '/login');
$monitor->logActivity(2, 'view_page', '/settings');
$monitor->logActivity(1, 'logout', '/logout');

// 获取并输出特定用户的活动日志
$user1Logs = $monitor->getUserActivity(1);
echo "User 1 Activity Logs:\n";
foreach ($user1Logs as $log) {
    echo "Time: {$log->timestamp}, Type: {$log->activity_type}, Page: {$log->page_url}\n";
}

// 输出所有用户的活跃度分析
$userActivityAnalysis = $monitor->analyzeUserActivity();
echo "\nUser Activity Analysis:\n";
foreach ($userActivityAnalysis as $userId => $activityCount) {
    echo "User ID: {$userId}, Activity Count: {$activityCount}\n";
}

这个PHP代码片段实现了一个用户活动监控与分析系统,适用于需要记录和分析用户行为的场景,如网站或应用的使用情况监控。该工具可以帮助开发者和管理员了解用户交互模式,并做出相应的优化决策。具体功能如下:

  1. 用户活动记录:通过logActivity方法,记录用户的活动信息,包括用户ID、活动类型(如登录、浏览页面等)、页面URL以及其他附加数据。
  2. 日志读取与用户过滤:通过getLogs方法,可以读取所有用户的活动记录;通过getUserActivity方法,可以筛选并查看特定用户的活动日志。
  3. 用户活跃度分析:通过analyzeUserActivity方法,统计每个用户的活动次数,并按活跃度排序,有助于识别最活跃或最不活跃的用户。

此系统适用于需要追踪用户行为的应用,如分析用户如何使用网站、识别活跃用户、评估特定功能的使用情况等,为进一步的用户体验优化提供数据支持。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值