萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 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);

  }

  }

  ?>

copyright © 萬盛學電腦網 all rights reserved