thinkphp浏览历史功能实现方法


Posted in PHP onOctober 29, 2014

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
laravel邮件发送的实现代码示例
Jan 31 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 #PHP
thinkphp实现like模糊查询实例
Oct 29 #PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 #PHP
PHP多个文件上传到服务器实例
Oct 29 #PHP
php跨站攻击实例分析
Oct 28 #PHP
php获取根域名方法汇总
Oct 28 #PHP
3款值得推荐的微信开发开源框架
Oct 28 #PHP
You might like
php array_map()数组函数使用说明
2011/07/12 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
php简单获取复选框值的方法
2016/05/11 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
Bootstrap Table从零开始
2017/06/30 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python中分数的相关使用教程
2015/03/30 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
高三自我鉴定范文
2013/10/19 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
团干部培训方案
2014/06/03 职场文书
2015年征兵工作总结
2015/07/23 职场文书
企业团队精神心得体会
2016/01/19 职场文书
医德医风学习心得体会
2016/01/25 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技