Heim  >  Artikel  >  Backend-Entwicklung  >  不同访客展示不同内容,同一访客以后访问内容不变,清除缓存除外。

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

WBOY
WBOYOriginal
2016-06-23 13:37:14991Durchsuche

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

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

这个功能的代码怎么写呢?


回复讨论(解决方案)

通过 cookie 保存

$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;}// 判断用户是否访问过,如访问过直接显示上次访问的结果,否则抽取最前一页,写入用户cookiesif(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;

<?php$content = array('A', 'B', 'C', 'D', 'E');!($cookie = intval($_COOKIE['content'])) && setcookie('content', $cookie = rand(0, count($content) - 1));echo $content[$cookie];

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn