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程序设计有所帮助。