当前位置:首页 > PHP

php实现浏览记录

2026-02-16 08:15:39PHP

PHP 实现浏览记录的方法

使用 Cookie 存储浏览记录

通过 Cookie 存储用户的浏览记录是一种简单的方法。每次用户访问页面时,将页面信息存入 Cookie,并限制存储数量。

// 设置浏览记录
$history = isset($_COOKIE['history']) ? json_decode($_COOKIE['history'], true) : [];
$currentPage = ['title' => '当前页面标题', 'url' => '当前页面URL'];

// 限制记录数量(例如最近 5 条)
array_unshift($history, $currentPage);
$history = array_slice($history, 0, 5);

// 存储到 Cookie
setcookie('history', json_encode($history), time() + 86400 * 30, '/');

使用 Session 存储浏览记录

Session 适合临时存储用户的浏览记录,数据在用户关闭浏览器后失效。

php实现浏览记录

session_start();

// 初始化浏览记录
if (!isset($_SESSION['history'])) {
    $_SESSION['history'] = [];
}

$currentPage = ['title' => '当前页面标题', 'url' => '当前页面URL'];

// 限制记录数量
array_unshift($_SESSION['history'], $currentPage);
$_SESSION['history'] = array_slice($_SESSION['history'], 0, 5);

使用数据库存储浏览记录

对于需要长期保存或跨设备同步的浏览记录,可以使用数据库存储。

php实现浏览记录

// 假设已连接数据库
$userId = 1; // 用户ID
$title = '当前页面标题';
$url = '当前页面URL';

// 插入记录
$stmt = $pdo->prepare("INSERT INTO browsing_history (user_id, title, url, visited_at) VALUES (?, ?, ?, NOW())");
$stmt->execute([$userId, $title, $url]);

// 查询最近的浏览记录
$stmt = $pdo->prepare("SELECT title, url FROM browsing_history WHERE user_id = ? ORDER BY visited_at DESC LIMIT 5");
$stmt->execute([$userId]);
$history = $stmt->fetchAll(PDO::FETCH_ASSOC);

结合前端和后端实现

可以通过 Ajax 将浏览记录发送到后端存储,同时在前端展示。

// 后端接收 Ajax 请求
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['title'], $_POST['url'])) {
    session_start();
    $currentPage = ['title' => $_POST['title'], 'url' => $_POST['url']];
    array_unshift($_SESSION['history'], $currentPage);
    $_SESSION['history'] = array_slice($_SESSION['history'], 0, 5);
    echo json_encode(['status' => 'success']);
    exit;
}
// 前端发送浏览记录
$.post('save_history.php', {
    title: document.title,
    url: window.location.href
}, function(response) {
    console.log('浏览记录已保存');
});

清理过期的浏览记录

对于数据库存储的浏览记录,可以定期清理过期数据。

// 删除 30 天前的记录
$stmt = $pdo->prepare("DELETE FROM browsing_history WHERE visited_at < DATE_SUB(NOW(), INTERVAL 30 DAY)");
$stmt->execute();

以上方法可以根据实际需求选择或组合使用,以实现灵活高效的浏览记录功能。

标签: php
分享给朋友:

相关文章

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUEST_…

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…

php https实现

php https实现

PHP 中实现 HTTPS 的方法 在 PHP 中实现 HTTPS 主要通过配置服务器和编写代码来确保通信的安全性。以下是几种常见的方法: 配置服务器支持 HTTPS 确保服务器已安装 SSL/T…

php实现多态

php实现多态

多态的概念 多态是面向对象编程的三大特性之一,指同一个方法在不同类中有不同实现方式。PHP通过继承和接口实现多态。 通过继承实现多态 父类定义方法,子类重写该方法实现不同行为: class Ani…