本文實例講述了thinkphp浏覽歷史功能實現方法,分享給大家供大家參考。具體實現方法分析如下:
歷史浏覽功能都是使用了cookie功能記錄用戶信息放到了本地了,這樣我們只要讀取存儲在cookies中的值就可以了,下面來給大家介紹一個基於thinkphp 實現浏覽歷史功能例子。
就像浏覽器一樣,能夠記錄訪問了哪些頁面,這樣能夠減少時間,下面我們實現浏覽歷史的功能。
1.在你需要記錄浏覽數據的產品或新聞頁面,記錄cookie需要保存的信息,例如下面這行代碼,把頁面ID,產品名稱,價格,縮略圖,網址傳給cookie_history。
復制代碼 代碼如下:cookie_history($id,$info['title'],$info['price'],$info['pic'],$thisurl);
2.function.php 裡面添加代碼
復制代碼 代碼如下:/**
+----------------------------------------------------------
* 浏覽記錄按照時間排序
+----------------------------------------------------------
*/
function my_sort($a, $b){
$a = substr($a,1);
$b = substr($b,1);
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
/**
+----------------------------------------------------------
* 網頁浏覽記錄生成
+----------------------------------------------------------
*/
function cookie_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);
}
}
/**
+----------------------------------------------------------
* 網頁浏覽記錄讀取
+----------------------------------------------------------
*/
function cookie_history_read(){
$arr = cookie('history');
foreach ((array)$arr as $k => $v){
$list[$k] = json_decode($v,true);
}
return $list;
}
3.在需要顯示浏覽記錄的頁面輸出信息
復制代碼 代碼如下:$this->assign('history',cookie_history_read());
模板裡面用volist顯示出來就行了。
希望本文所述對大家的PHP程序設計有所幫助。
這個是一個action類,最後一句$this->display('Public:text');是顯示public下的text模板。也就是說先執行這個類的這個方法,然後顯示模板。模板用到的變量就從這裡調用assign分配過去。比如$this->assign('time',time());就是把當前時間用time名字分配到模板中。else裡面的html代碼應該是寫到模板中的。
前台就是一個多選框,然後在Controller裡判斷這個多選框是否有選中,用 where 語法賽選下就好了。 一般就是$this->dao->where("僅顯示有貨=$a")