ホームページ  >  記事  >  バックエンド開発  >  異なる訪問者には異なるコンテンツが表示されますが、将来同じ訪問者が訪問した場合でも、キャッシュのクリアを除いてコンテンツは変更されません。

異なる訪問者には異なるコンテンツが表示されますが、将来同じ訪問者が訪問した場合でも、キャッシュのクリアを除いてコンテンツは変更されません。

WBOY
WBOYオリジナル
2016-06-23 13:37:14992ブラウズ

たとえば
1. コンテンツ A、B、C、D、E の 5 つがあり、そのうちの 1 つが Web ページ上の 1 つ以上の場所に表示されます。
2. 最初の訪問者が Web ページにアクセスすると、コンテンツ A が表示されます。訪問者が将来再び Web ページを開いたとき、ブラウザのキャッシュをクリアしない限り、コンテンツ A が表示されます。
3. 2 番目の訪問者が Web ページにアクセスすると、コンテンツ B が表示されます。訪問者が将来再び Web ページを開いたとき、ブラウザのキャッシュをクリアしない限り、コンテンツ B が表示されます。
4. 。 。
5. 6 人目の訪問者が Web ページにアクセスすると、コンテンツ A が表示されます。訪問者が将来再び Web ページを開いたとき、ブラウザのキャッシュをクリアしない限り、コンテンツ A が表示されます。
6. 7 人目の訪問者が Web ページにアクセスすると、コンテンツ B が表示されます。訪問者が将来再び Web ページを開いたとき、ブラウザのキャッシュをクリアしない限り、コンテンツ B が表示されます。
このようなループ

は、5 つのコンテンツのうち 1 つを順番に取り出して、訪問者が来るたびに訪問者に表示し、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];

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。