iphone清除cookiess 如何实现浏览历史

thinkphp浏览历史功能实现方法
转载 &更新时间:日 15:23:37 & 投稿:shichen2014
这篇文章主要介绍了thinkphp浏览历史功能实现方法,可实现浏览器的浏览历史功能,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了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'] = $
$dealinfo['price'] = $
$dealinfo['img'] = $
$dealinfo['url'] = $
$time = 't'.NOW_TIME;
$cookie_history = array($time =& json_encode($dealinfo));& //设置cookie
if (!cookie('history')){//cookie空,初始一个
cookie('history',$cookie_history);
$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);
3.在需要显示浏览记录的页面输出信息
代码如下:$this-&assign('history',cookie_history_read());
模板里面用volist显示出来就行了。
希望本文所述对大家的PHP程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具js实现cookie历史记录 源代码及详解_百度知道
js实现cookie历史记录 源代码及详解
代码和详细解释 最好精简点 谢谢。
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
/** * history_teacher.jsp中的js,最近浏览名师 * @version: 1.0 * @author: mingming */$(function(){
getHistory();});var historyCount=4; //保存历史记录个数/** * 增加浏览历史记录 * @param id 编号 * @param name 姓名 * @param photo 照片 * @param grade 年级 * @param subject 科目 * @return */function setHistory(id,name,photo,grade,subject){
stringCookie=getCookie('history');
var stringHistory=&&!=stringCookie?stringCookie:&{history:[]}&;
var json=new JSONHistory(stringHistory);
//转成json
var list = json['history'];
//获得json
for (var i = 0; i & list. i++) {
if(list[i].id == id){
list.splice(i,1); //删除重复数据,开始位置,删除个数
i=i-1; //下标归位
} catch (e) {
if(list.length&=historyCount){
//删除最开始的多余记录
var count = list.length - historyCount + 1; //需要删除的个数
list.splice(0,count); //开始位置,删除个数
var e=&{id:'&+id+&',name:'&+name+&',photo:'&+photo+&',grade:'&+grade+&',subject:'&+subject+&'}&;
json['history'].push(e);//添加一个新的记录
setCookie('history',json.toString(),365); //365天}/** * 获得浏览历史记录 * @return */function getHistory(){
var historyJSON=getCookie('history');
if(historyJSON==&&){
var data = eval(&(&+historyJSON+&)&);
var history = data['history']; //历史记录
var length = history.
if(length & historyCount){
length = historyC
//从最后一个浏览记录开始获取
var historyHtml=&&;
for ( var i = length-1; i &= 0; i--) {
historyHtml+=
'&dd&'+
'&ul&'+
'&li class=&recimg&&&a href=&'+PATH+&/teacher/teacherinfo?teacherVO.teacherId=&+history[i].id+'&&&img src=&'+PATH + &/&+ history[i].photo +'& alt=&& /&&/a&&/li&'+
'&li class=&recinfo&&'+
'&p&&a href=&'+PATH+&/teacher/teacherinfo?teacherVO.teacherId=&+history[i].id+'&&'+history[i].name+'&/a&&/p&'+
'&p class=&grayp&&科目:'+history[i].subject+'&/p&'+
'&p class=&grayp&&年级:'+history[i].grade+'&/p&'+
'&/li&'+
'&/ul&'+
'&/dd&';
if(historyHtml!=&&){
$(&#historyTeacher&).html('&h2&最近浏览名师&/h2&&dl&'+historyHtml+'&/dl&');
}}/** * 添加cookie * @param cookName cookie名称 * @param cookName cookie值 * @param expiredays 时长 */function setCookie(cookName,cookValue,expiredays){
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays*24*);
var cookieVal=cookName+ &=& +escape(cookValue)+((expiredays==null) ? && : &;expires=&+exdate.toGMTString())+&;path=/&;
document.cookie=cookieV}/** * 获取cookie * @param cookName cookie名称 * @return */function getCookie(cookName){
if(document.cookie.length&0){
var c_start = document.cookie.indexOf(cookName + &=&);
if(c_start!=-1){ //存在
c_start = c_start + cookName.length + 1; //&history=&后的开始位置
var c_end=document.cookie.indexOf(&;&,c_start); //找到JSESSIONID在的位置
if (c_end==-1){ //JSESSIONID不存在
c_end=document.cookie.
return unescape(document.cookie.substring(c_start,c_end));
return &&;}/** * JSON */var JSONHistory = function(sJSON){
this.objType = (typeof sJSON);
if(this.objType=='string' && ''==sJSON){
sJSON = '{history:[]}' ;
this.self = [];
(function(s,o){
for(var i in o){
o.hasOwnProperty(i)&&(s[i]=o[i],s.self[i]=o[i])
};})(this,(this.objType=='string')?eval('0,'+sJSON):sJSON);};JSONHistory.prototype = {
toString:function(){
return this.getString();
valueOf:function(){
return this.getString();
getString:function(){
var sA = [];
(function(o){
sA.push('{');
for(var i in o){
if(o.hasOwnProperty(i) && i!='prototype'){
oo = o[i];
if(oo instanceof Array){
sA.push(i+':[');
for(var b in oo){
if(oo.hasOwnProperty(b) && b!='prototype'){
sA.push(oo[b]+',');
if(typeof oo[b]=='object') arguments.callee(oo[b]);
sA.push('],');
sA.push(i+':\''+oo+'\',');
if(typeof oo=='object') arguments.callee(oo);
sA.push('},');
})(this.self);
return sA.slice(0).join('').replace(/\[object object\],/ig,'').replace(/,\}/g,'}').replace(/,\]/g,']').slice(0,-1);
push:function(sName,sValue){
this.self[sName] = sV
this[sName] = sV
- - 详细解释 不是在网上查了粘贴过来。。
采纳率:13%
不知道。你查下开发手册吧
为您推荐:
其他类似问题
cookie的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。为了账号安全,请及时绑定邮箱和手机
点击这里,将文章分享到自己的动态
Cookie实现商品浏览记录--方式一:Java实现
方式一:Java代码方式实现:此种方式实现思路较为顺畅。
难点在于,如何实现将最近浏览的产品显示在最前面:实现方式是借助LinkedList提供的remove()方法,先将此id从列表中移除,然后再借助addFirst()方法将此id插入到最前面。具体实现如下:
(1). 在JSP页面中,显示所有的商品列表。当我们选择某一款产品时,通过超链接跳转到Servlet中,并将此产品的ID一并传过去。
&dt&&a href="&%=path %&/servlet/do_home_control?param=recode&ep_id=${ep.ep_id}" target="_self"&&img src="images/product/1.jpg" /&&/a&&/dt&
(2). 在Servlet中,接收产品id。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String param = request.getParameter("param");
String path = request.getContextPath();
PrintWriter out = response.getWriter();
if("recode".equals(param)) {
String ep_id = request.getParameter("ep_id");
// 如果是首页显示,则ep_id为null,则只显示cookie中的值即可。
// 根据cookie的name,重设对应的value
String cvalue = Tool.BuildCookie("productRecode", ep_id, request);
// 将新的cookie写入
Cookie cookie = new Cookie("productRecode", cvalue);
cookie.setMaxAge(3600 * 1000);
cookie.setPath("/");
response.addCookie(cookie);
// 根据id获得对应的产品集合,最终将产品列表显示到jsp页面中
List&Easybuy_Product& eps = new ArrayList&Easybuy_Product&();
for (String c : cvalue.split(",")) {
eps.add(productService.getProductByEp_Id(Integer.parseInt(c)));
request.getSession().setAttribute("productRecode", eps);
response.sendRedirect(request.getContextPath()
+ "/product-view.jsp?ep_id=" + ep_id);
(3). 上面涉及到一个方法,将此方法写到工具类中了。
//Tool.java工具类中写了下面的两个方法
* 将id添加到cookie中,并返回最终的Cookie字符串
* @param cookieName
* @param ep_id
* @param request
* @return String
public static String BuildCookie(String cookieName, String ep_id,
HttpServletRequest request) {
StringBuilder sb = new StringBuilder();
String recodeValue = getCookieValue(cookieName, request);
// 判断cookie的value值中是否包含此id
if (recodeValue == null) {
// 判断ep_id是否为空。如果为空,则为首页显示
if (ep_id == null || "".equals(ep_id)) {
return ep_
//转换成LinkedList很有必要。普通的ArrayList想要实现最近浏览的产品移动到最前面比较困难,不如LinkedList提供的方法来的直接。
LinkedList&String& s = new LinkedList&String&(
Arrays.asList(recodeValue.split(",")));
// 判断ep_id是否为空。如果为空,则为首页显示
//如果ep_id不为空,则判断LinkedList中是否包含此ID。如果包含,则移除掉。然后将此ID放置到列表中的第一个位置。
if (ep_id != null) {
if (s.contains(ep_id)) {
s.remove(ep_id);
//商品显示3条
if (s.size() & 3) {
s.removeLast();
s.addFirst(ep_id);
for (String bid : s) {
sb.append(bid + ",");
return sb.deleteCharAt(sb.length() - 1).toString();
* 根据cookieName获取cookie对应的value值
* @param cookieName
public static String getCookieValue(String cookieName,
HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
String recodeValue =
if (cookies != null && cookies.length & 0) {
for (Cookie cookie : cookies) {
if (cookieName.equals(cookie.getName())) {
recodeValue = cookie.getValue();
return recodeV
这个功能就这样实现了!如果你有想法,咱们一起探讨!
谢谢你来看我。
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
若觉得本文不错,就分享一下吧!
评论加载中...
相关文章推荐
正在加载中
JAVA开发工程师
作者相关文章网站已改版,请使用新地址访问:
BrowserCookies 抓取浏览器密码、历史记 各种高端设置的超级牛逼的工具。 Windows Kernel 系统编程 263万源代码下载- www.pudn.com
&文件名称: BrowserCookies& & [
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 1420 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:抓取浏览器密码、历史记录、各种高端设置的超级牛逼的工具。-Crawl browser passwords, history, all kinds of super-fast hardware high-end tool set.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&BrowserCookies&&..............\BrowserCookies&&..............\..............\BrowserCookies.cpp&&..............\..............\BrowserCookies.vcxproj&&..............\..............\BrowserCookies.vcxproj.filters&&..............\..............\chrome_cookies.cpp&&..............\..............\chrome_cookies.h&&..............\..............\chrome_password.cpp&&..............\..............\chrome_password.h&&..............\..............\cookies.cpp&&..............\..............\cookies.h&&..............\..............\debug.cpp&&..............\..............\debug.h&&..............\..............\firefox_cookies.cpp&&..............\..............\firefox_cookies.h&&..............\..............\globals.h&&..............\..............\ie_cookies.cpp&&..............\..............\ie_cookies.h&&..............\..............\JSON.cpp&&..............\..............\JSON.h&&..............\..............\JSONValue.cpp&&..............\..............\JSONValue.h&&..............\..............\social.cpp&&..............\..............\social.h&&..............\..............\sqlite.c&&..............\..............\sqlite.h&&..............\..............\stdafx.cpp&&..............\..............\stdafx.h&&..............\..............\targetver.h&&..............\..............\utils.cpp&&..............\..............\utils.h&&..............\..............\zmem.cpp&&..............\..............\zmem.h&&..............\BrowserCookies.sln
&输入关键字,在本站263万海量源码库中尽情搜索:

我要回帖

更多关于 美国衣服牌子cookies 的文章

 

随机推荐