您当前的位置: 首页 > 网站编程 > PHP教程 > PHP购物车类

PHP购物车类

作者:不详 来源:网络 发布时间: 2014-07-30 10:06 点击:
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'); //delP

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);

  }

  }

  ?>
分享到:
本文"PHP购物车类"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4