自己写的一个php利用cookie记录浏览(商品)历史记录的函数

/*author: limo
*update:2013-10-17
*
*浏览历史记录
*param $num int 记录条数 默认10条 提示:cookie存数据大小有限制,一般为4K
*param $day int 记录保存时间 默认7天
*param $idstr string 商品id,分类 等等参数值 如cid,id参数值以处‘|’外的其他字符分割
*return datastr string 信息id数据字符串
*/

function RecentViews($num=10,$day=7,$idstr)

 $id = isset($id) ? $id : 0;
 if(isset($_COOKIE['views']))
 { 
  //直接替换
  if($num==1)
  { 
   setcookie("views",$id,time()+3600*$day);
   $datastr = $_COOKIE['views'];
  }
  else
  { 
   $datastr = $_COOKIE['views'];
   $ids = explode('|',$datastr);
   //在限定记录数以内
   if(count($ids )< $num){
    //id是否已经存在
    if(!in_array($id,$ids)){
     $datastr .= '|'.$id;
     setcookie("views",$datastr,time()+3600*$day);
    }
   }
   else
   {
    if(!in_array($id,$ids))
    {
     $datastr = str_replace($ids[0].'|','',$datastr);
     $datastr .= '|'.$id;
     setcookie("views",$datastr,time()+3600*$day);
    }
   }
   
  }
 }
 else
 {
  setcookie("views",$id,time()+3600*$day);
  //php的cookie不会及时生效 直接访问报错 需要刷新一次
  @$datastr = $_COOKIE['views'];
 }
 return $datastr;
}

你可能感兴趣的:(PHP,cookie商品浏览历史)