您好,欢迎访问一九零五行业门户网

PHP购物车类_PHP教程

php购物车类 php购物车类:
因为需求中只记录产品的类型,还有编号..比如食物,,然后什么编号,,这样子.所以没有记录产品的数量..要用的自己改进一下就行了.
//setcookie(cart,s:26,45,4,4523423|d:17,7,27,26|e:12,13,123,43|f:34);
//cartadd('e','167');
//getproinfo('z');
//delproinfo('f','26');
/**
* ***********
* 用于记录,修改,删除cookie的类,用于我的计划的本地信息的更改
* liquan
*/
class cart
{
/*
实现cookies购物车
@type 产品类型
@id 产品编号
cookies的结果为 type1:3,45,23|type2:34,234,34|type3:344,124
*/
function cartadd(type,id)
{
//如果第一次使用,则重新设置cookies
if(!isset(_cookie[cart]))
{
setcookie(cart,type.:.id);
}
else
{
//如果不是第一次,则先取出来
cartstr=_cookie[cart];
//把结果分开
cartarray=split(\|,cartstr);
//用于判断类型是否存在,初始不存在,为零
istype=0;
//产品编号列表
id_list;
//循环产品
for (i=0;i
{
//获取产品名和产品编号列表
list(carttype,product)=split(:,cartarray[i]);
//如果已经存在的产品与要保存的相如,把istype改为1,说明产品已经存在
if (type==carttype)
{
istype=1;
//获取产品的编号列表
id_list=product;
//中断循环
break ;
}
}
//如果产品不存在
if(istype==0)
{
//往cookies里面加入新产品和产品的编吃
cartstr=cartstr.|.type.:.id;
}
else
{
//把产品列表分开成数组
id_list=split(\,,id_list);
//标识产口编号是否存在,初始不存在
isid=0;
//循环产品编号
for(i=0;i
{
//如果要保存的产品编号已尼存在
if(id==id_list[i])
{
//标识已存在.退出循环
isid=1;
break;
}
}
//这里只做产品类型和产品编号,所以相同的不加数量,直接不外理
//如果相关类型的产品编号不存在,则加上新的编号
if(isid!=1)
{
cartstr=str_replace(type.:,type.:.id.,,cartstr);
//cartstr=str_replace('d:','d:2,',cartstr);
}
}
setcookie(cart,cartstr);
print_r(_cookie[cart]);
//setcookie(cart,,time()-100);
}
return ;
}
//返回相应的产品列表
/*
@type产品类型
*/
function getproinfo(type)
{
//获取购物车cookies
cartstr=_cookie[cart];
//匹配cookies字符,获取产品列表
preg_str=type.:((\d+),)*(\d+);
//echo
;
preg_match(/.preg_str./,cartstr,prostr);
//echo prostr[0];
//exit();
list(protype,product)=split(:,prostr[0]);
return product;
//pro_list=split(,,product);
//返回产品列表
//return pro_list;
// print_r(pro_list);
}
/*
*删除产品
*@type产品类型名
*@id 产品编号
*/
function delproinfo(type,id)
{
//获取购物车cookies
cartstr=_cookie[cart];
//匹配cookies字符,获取产品列表
preg_str=type.:((\d+),)*(\d+);
//echo
;
preg_match(/.preg_str./i,cartstr,prostr);
//只有能找到要删除的类型,才进行下面操做
if(prostr)
{
//查询删除的类型里面是否有要删除的id
isproid=strstr(prostr[0],id);
//如果有,才进行下面操作
if(isproid)
{
//更新后的产品字符串
upprostr;
//更新后的所有最新的产品cookies字符
newcartstr;
//查询要删除的产品是否有多个
preg_match(/,/,prostr[0],isend);
//如果有,进行下面操作
if(isend)
{
//查询要删除的产品后面是否还有产品
preg_match(/.id.,/,prostr[0],isdot);
//如果有,删除后面的逗号
if(isdot)
{
upprostr=str_replace(id.,,,prostr[0]);
}
//如果没有,删除前面的逗号
else
{
upprostr=str_replace(,.id,,prostr[0]);
}
//更新要插入cookies里面的字符串
newcartstr=str_replace(prostr[0],upprostr,cartstr);
}
//如果没有多个,则直接删除该类产品
else
{
//判断该类产品后面还有没有产品
preg_match(/.prostr[0].\|/,cartstr,issu);
//如果有,则删除后面的分格符
if(issu)
{
newcartstr=str_replace(prostr[0].|,,cartstr);
}
//如果没有,则删除前面的分格符
else
{
newcartstr=str_replace(|.prostr[0],,cartstr);
}
}
setcookie(cart,newcartstr);
}
}
}
function deletecart()
{
setcookie(cart,,time()-100);
}
}
?>
http://www.bkjia.com/phpjc/845130.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/845130.htmltecharticlephp购物车类 php购物车类: 因为需求中只记录产品的类型,还有编号..比如食物,,然后什么编号,,这样子.所以没有记录产品的数量..要用的自己...
其它类似信息

推荐信息