Cookie(下)

2018-04-10  本文已影响10人  JessWang

/* * Cookie 实例(用户浏览记录) 

    * 分析: 

    *用户浏览记录是不断变更的,是多条数据,我们可以使用数组来保存. 

    * cookie只能保存字符串,如何保存数组? 

    * 解决方案: 通过系统内置的序列化和反序列化函数来实现, serialize() 和 unserialize() 

    //1. 获取URL地址,用到$_SERVER['REQUEST_URI']

    $url = $_SERVER['REQUEST_URI'];

    // echo $url,'';

    //2. 将URL放到Cookie中

    //用一个数组来保存URL

    $arr=[];

    //首先要判断是否有浏览记录,如果有,将当前URL放到浏览记录前面

    //如果不存在浏览记录,则新建一个浏览记录

    if (isset($_COOKIE['his'])) {

        $arr = unserialize($_COOKIE['his']);//取出来的是字符串,需要反序列化

        array_unshift($arr,$url);//将URL地址放到历史记录最前面

        //重复的浏览记录去除掉

        $arr = array_unique($arr);  

         if (count($arr) > 10) { //只保存10条记录 

                array_pop($arr);//将最后一条记录弹出    

                }

            //再次存放到cookie中

            setcookie('his',serialize($arr));

       }else{

        $arr[] = $url;

        //首次存放到cookie

        setcookie('his',serialize($arr));}

echo "历史浏览记录";

echo '<ol>';

foreach ($arr as $k => $v) {

echo '<li>'.$v.'</li>';

}

echo '</ol>';

echo "<hr />";

echo '随机生一个URL地址';

上一篇 下一篇

猜你喜欢

热点阅读