不同访客展示不同内容,同一访客以后访问内容不变,清除缓存除外。

qq_27180001 2015-04-06 04:30:05
例如
1、有5个内容A、B、C、D、E,其中一个将要网页的一个或多个位置展示。
2、第一个访问者访问该网页后,看到A内容,以后该访问者再打开这个网页时,看到的都是内容A,除非他清除浏览器缓存。
3、第二个访问者访问该网页后,看到B内容,以后该访问者再打开这个网页时,看到的都是内容B,除非他清除浏览器缓存。
4、。。。
5、第六个访问者访问该网页后,看到A内容,以后该访问者再打开这个网页时,看到的都是内容A,除非他清除浏览器缓存。
6、第七个访问者访问该网页后,看到B内容,以后该访问者再打开这个网页时,看到的都是内容B,除非他清除浏览器缓存。
如些循环

相当于每进一个访客就从5个内容中按顺序取一个显示给访客,取完5个后再循环。

这个功能的代码怎么写呢?
...全文
99 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商众筹 2015-04-06
  • 打赏
  • 举报
回复

<?php
$content = array('A', 'B', 'C', 'D', 'E');
!($cookie = intval($_COOKIE['content'])) && setcookie('content', $cookie = rand(0, count($content) - 1));
echo $content[$cookie];
傲雪星枫 2015-04-06
  • 打赏
  • 举报
回复

$arr = array('A','B','C','D','E');
$file = 'data.log';

// 获取未显示过的page,如全部已显示,则重新赋值
if(file_exists($file)){
$data = json_decode(file_get_contents($file),true);
if(!$data){
$data = $arr;
}
}else{
$data = $arr;
}

// 判断用户是否访问过,如访问过直接显示上次访问的结果,否则抽取最前一页,写入用户cookies
if(isset($_COOKIE['show'])){
$result = $_COOKIE['show'];
}else{
$result = array_splice($data,0,1);
$result = array_pop($result);
setcookie('show',$result,time()+3600);
file_put_contents($file, json_encode($data), true);
}

echo $result;
xuzuning 2015-04-06
  • 打赏
  • 举报
回复
通过 cookie 保存

21,892

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧