王尘宇王尘宇

研究百度干SEO做推广变成一个被互联网搞的人

应用cookie应当能够完成php指定时候随机一次

在掏出数据以后把数据缓存在客户端,然后cookie指定一个时候周期,在下次革新时先推断这个cookie时候到期没,假如到期了就从新革新,不然就挪用当地缓存。以下是以 emlog 博客为案例的代码

<?php    //载入全局加载项    require_once 'init.php';    //链接数据库    $DB = MySql::getInstance();    /*****************依据前提随机猎取20条文章的GID***************/    $sql = "SELECT * FROM ".DB_PREFIX."blog ORDER BY rand() DESC LIMIT 20";    $list = $DB->query($sql);    while($row = $DB->fetch_array($list)){        $arrgid.= $row['gid'].',';    }    $arrgid = substr($arrgid,0,strlen($arrgid)-1);//去除末了一个逗号    $arr = explode(",",$arrgid);//将猎取的gid以逗号分割为数组            /***********函数,依据文章gid输出文章标题与衔接**************/    function sylist($gid){        $DB = MySql::getInstance();        $sql = "SELECT * FROM ".DB_PREFIX."blog WHERE gid = '{$gid}'";        $list = $DB->query($sql);        while($row = $DB->fetch_array($list)){            return '<li><a target="_blank" href="'.Url::log($row['gid']).'">'.$row['title'].'</li>';        }            }    /***********依据cookie在指定时候内猎取内容**************/    //推断cookie【gid】是不是存在    if (isset($_COOKIE["gid"])){                //推断cookie【date】逾期时候是不是存在        if(isset($_COOKIE["date"])){                        echo '逾期时候为:'.date("Y-m-d H:i:s", $_COOKIE["date"]).'<br/><br/>';                        //推断时候是不是逾期,当前时候大于cookie【date】中贮存的时候则为逾期            if(time() > $_COOKIE["date"]){                //假如逾期了,从新建立逾期时候                setcookie("date", "", time()-3600);//删除逾期时候                setcookie("date", time()+60*1,time()+3600);//从新建立逾期时候,个中的60*1为一分钟                //革新内容                setcookie("gid", "", time()-3600);//删除逾期内容                setcookie("gid", $arrgid,time()+3600);//从新建立内容            }            //输出内容            $arr = explode(",",$_COOKIE["gid"]);            //轮回输出数组            foreach($arr as $value){                echo sylist($value);            }                     }else{            //假如不存在,则建立一个间隔当前时候一分钟的时候为逾期时候            setcookie("date", time()+60*1,time()+3600);//个中的60*1为一分钟            //假如date不存在时则会输出空缺,此时随机输出内容            foreach($arr as $value){                echo sylist($value);            }        }    }else{        setcookie("date", time()+60*1,time()+3600);//个中的60*1为一分钟        setcookie("gid", $arrgid,time()+3600);//假如gid不存在,则建立gidcookie,内容为随机猎取的文章gid        //假如gid不存在时则会输出空缺,此时随机输出内容        foreach($arr as $value){            echo sylist($value);        }    }?>

本文代码由 emlog学院陈子文供应,博客簿仅作保留分享之用!

相关文章

评论列表

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。