thinkphp浏览历史功能实现方法
本文实例讲述了thinkphp浏览历史功能实现方法,分享给大家供大家参考。具体实现方法分析如下:
历史浏览功能都是使用了cookie功能记录用户信息放到了本地了,这样我们只要读取存储在cookies中的值就可以了,下面来给大家介绍一个基于thinkphp实现浏览历史功能例子。
就像浏览器一样,能够记录访问了哪些页面,这样能够减少时间,下面我们实现浏览历史的功能。
1.在你需要记录浏览数据的产品或新闻页面,记录cookie需要保存的信息,例如下面这行代码,把页面ID,产品名称,价格,缩略图,网址传给cookie_history。
cookie_history($id,$info['title'],$info['price'],$info['pic'],$thisurl);
2.function.php里面添加代码
/** +---------------------------------------------------------- *浏览记录按照时间排序 +---------------------------------------------------------- */ functionmy_sort($a,$b){ $a=substr($a,1); $b=substr($b,1); if($a==$b)return0; return($a>$b)?-1:1; } /** +---------------------------------------------------------- *网页浏览记录生成 +---------------------------------------------------------- */ functioncookie_history($id,$title,$price,$img,$url){ $dealinfo['title']=$title; $dealinfo['price']=$price; $dealinfo['img']=$img; $dealinfo['url']=$url; $time='t'.NOW_TIME; $cookie_history=array($time=>json_encode($dealinfo)); //设置cookie if(!cookie('history')){//cookie空,初始一个 cookie('history',$cookie_history); }else{ $new_history=array_merge(cookie('history'),$cookie_history);//添加新浏览数据 uksort($new_history,"my_sort");//按照浏览时间排序 $history=array_unique($new_history); if(count($history)>4){ $history=array_slice($history,0,4); } cookie('history',$history); } } /** +---------------------------------------------------------- *网页浏览记录读取 +---------------------------------------------------------- */ functioncookie_history_read(){ $arr=cookie('history'); foreach((array)$arras$k=>$v){ $list[$k]=json_decode($v,true); } return$list; }
3.在需要显示浏览记录的页面输出信息
$this->assign('history',cookie_history_read());
模板里面用volist显示出来就行了。
希望本文所述对大家的PHP程序设计有所帮助。