PHP 浏览历史记录[很简单两步就搞定]
什么是 Cookie?
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
实现思路:
- 第一步:
存入cookie/更新:【存入时先判断是否存在cookie,如果存在那就进行数据处理让新的值放在最前面更新cookie否则为存入cookie】 - 第二步:
提出cookie中信息【判断是否存在cookie,存在的话用$_COOKIE 进行对value提出再进行数据处理将其转化为数组形式】
常用函数:
[1] setcookie() — [setcookie(name, value, expire, path, domain);] 设置 cookie [value 为一串以 ,分隔的字符串]
[2] $_COOKIE — 变量用于取回 cookie 的值 [超全局变量 大写]
[3] explode — 使用一个字符串分割另一个字符串 [常用将字符串打撒组合为数组,新数组为索引型数组]
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
array_map — 将回调函数作用到给定数组的单元上
intval — 获取变量的整数值
array_unique – 移除数组中的重复元素
array_unshift — 在数组开头插入一个或多个单元
implode — 将一个一维数组的值转化为字符串 【作用和 explode 相反】
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone[一串字符]
实现:
cookie name = id
// 存入 cookie
if(isset($_COOKIE['id'])){
$historyId = explode(',',$_COOKIE['id']); // 将cookie中value值【字符串型】转为数组
$historyId = array_map('intval',$historyId); // 进行数据处理将ID转为整数型
array_unshift($historyId,$id); // 将新ID插入到数组首位
$historyId = array_unique($historyId); // 删除重复元素
}else{
$historyId = [$id]; // 直接存入到数组中
}
$historyId = implode(',',$historyId); // 将得到的存放历史ID的数组进行字符串处理
setcookie('id',$historyId); // 存入 cookie 中
// 提取 cookie 值
$historyData = []; // 初始化历史记录信息为数组
if(isset($_COOKIE['id'])){
$historyData = explode(',',$_COOKIE['id']); // 将value字符串转为数组
$historyData = array_map('intval',$historyData); // 对数组值进行处理
}
print_r($historyData); // Array ( [0] => 10 [1] => 7 [2] => 1 [3] => 5 [4] => 8 [5] => 4 [6] => 6 [7] => 2 [8] => 9 [9] => 3 )
只是基础知识,望大家多多指教。