pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

php實現保存周期為1天的購物車類

這篇文章主要為大家詳細介紹了php實現保存周期為1天的購物車類,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了php購物車類的具體代碼,供大家參考,具體內容如下

購物車類 Cookies 保存,保存周期為1天 注意:瀏覽器必須支持Cookie才能夠使用

示例代碼:

<?php
/**
 * 購物車類 Cookies 保存,保存周期為1天 注意:瀏覽器必須支持Cookie才能夠使用
 */
class CartAPI {
  private $CartArray = array(); // 存放購物車的二維數組
  private $CartCount; // 統計購物車數量
  public $Expires = 86400; // Cookies過期時間,如果為0則不保存到本地 單位為秒
  /**
   * 構造函數 初始化操作 如果$Id不為空,則直接添加到購物車
   *
   */
  public function __construct($Id = "",$Name = "",$Price1 = "",$Price2 = "",$Price3 = "",$Count = "",$Image = "",$Expires = 86400) {
    if ($Id != "" && is_numeric($Id)) {
      $this->Expires = $Expires;
      $this->addCart($Id,$Name,$Price1,$Price2,$Price3,$Count,$Image);
    }
  }
  /**
   * 添加商品到購物車
   *
   * @param int $Id 商品的編號
   * @param string $Name 商品名稱
   * @param decimal $Price1 商品價格
   * @param decimal $Price2 商品價格
   * @param decimal $Price3 商品價格
   * @param int $Count 商品數量
   * @param string $Image 商品圖片
   * @return 如果商品存在,則在原來的數量上加1,并返回false
   */
  public function addCart($Id,$Name,$Price1,$Price2,$Price3,$Count,$Image) {
    $this->CartArray = $this->CartView(); // 把數據讀取并寫入數組
    if ($this->checkItem($Id)) { // 檢測商品是否存在
      $this->ModifyCart($Id,$Count,0); // 商品數量加$Count
      return false;
    }
    $this->CartArray[0][$Id] = $Id;
    $this->CartArray[1][$Id] = $Name;
    $this->CartArray[2][$Id] = $Price1;
    $this->CartArray[3][$Id] = $Price2;
    $this->CartArray[4][$Id] = $Price3;
    $this->CartArray[5][$Id] = $Count;
    $this->CartArray[6][$Id] = $Image;
    $this->save();
  }
  /**
   * 修改購物車里的商品
   *
   * @param int $Id 商品編號
   * @param int $Count 商品數量
   * @param int $Flag 修改類型 0:加 1:減 2:修改 3:清空
   * @return 如果修改失敗,則返回false
   */
  public function ModifyCart($Id, $Count, $Flag = "") {
    $tmpId = $Id;
    $this->CartArray = $this->CartView(); // 把數據讀取并寫入數組
    $tmpArray = &$this->CartArray; // 引用
    if (!is_array($tmpArray[0])) return false;
    if ($Id < 1) {
      return false;
    }
    foreach ($tmpArray[0] as $item) {
      if ($item === $tmpId) {
        switch ($Flag) {
          case 0: // 添加數量 一般$Count為1
            $tmpArray[5][$Id] += $Count;
            break;
          case 1: // 減少數量
            $tmpArray[5][$Id] -= $Count;
            break;
          case 2: // 修改數量
            if ($Count == 0) {
              unset($tmpArray[0][$Id]);
              unset($tmpArray[1][$Id]);
              unset($tmpArray[2][$Id]);
              unset($tmpArray[3][$Id]);
              unset($tmpArray[4][$Id]);
              unset($tmpArray[5][$Id]);
              unset($tmpArray[6][$Id]);
              break;
            } else {
              $tmpArray[5][$Id] = $Count;
              break;
            }
          case 3: // 清空商品
            unset($tmpArray[0][$Id]);
            unset($tmpArray[1][$Id]);
            unset($tmpArray[2][$Id]);
            unset($tmpArray[3][$Id]);
            unset($tmpArray[4][$Id]);
            unset($tmpArray[5][$Id]);
            unset($tmpArray[6][$Id]);
            break;
          default:
            break;
        }
      }
    }
    $this->save();
  }
  /**
   * 清空購物車
   *
   */
  public function RemoveAll() {
    $this->CartArray = array();
    $this->save();
  }
  /**
   * 查看購物車信息
   *
   * @return array 返回一個二維數組
   */
  public function CartView() {
    $cookie = stripslashes($_COOKIE['CartAPI']);
    if (!$cookie) return false;
    $tmpUnSerialize = unserialize($cookie);
    return $tmpUnSerialize;
  }
  /**
   * 檢查購物車是否有商品
   *
   * @return bool 如果有商品,返回true,否則false
   */
  public function checkCart() {
    $tmpArray = $this->CartView();
    if (count($tmpArray[0]) < 1) {      
      return false;
    }
    return true;
  }
  /**
   * 商品統計
   *
   * @return array 返回一個一維數組 $arr[0]:產品1的總價格 $arr[1:產品2得總價格 $arr[2]:產品3的總價格 $arr[3]:產品的總數量
   */
  public function CountPrice() {
    $tmpArray = $this->CartArray = $this->CartView();
    $outArray = array(); //一維數組
    // 0 是產品1的總價格
    // 1 是產品2的總價格
    // 2 是產品3的總價格
    // 3 是產品的總數量
    $i = 0;
    if (is_array($tmpArray[0])) {
      foreach ($tmpArray[0] as $key=>$val) {
        $outArray[0] += $tmpArray[2][$key] * $tmpArray[5][$key];
        $outArray[1] += $tmpArray[3][$key] * $tmpArray[5][$key];
        $outArray[2] += $tmpArray[4][$key] * $tmpArray[5][$key];
        $outArray[3] += $tmpArray[5][$key];
        $i++;
      }
    }
    return $outArray;
  }
  /**
   * 統計商品數量
   *
   * @return int
   */
  public function CartCount() {
    $tmpArray = $this->CartView();
    $tmpCount = count($tmpArray[0]);
    $this->CartCount = $tmpCount;
    return $tmpCount;
  }
  /**
   * 保存商品 如果不使用構造方法,此方法必須使用
   *
   */
  public function save() {
    $tmpArray = $this->CartArray;
    $tmpSerialize = serialize($tmpArray);
    setcookie("CartAPI",$tmpSerialize,time()+$this->Expires);
  }
  /**
   * 檢查購物車商品是否存在
   *
   * @param int $Id
   * @return bool 如果存在 true 否則false
   */
  private function checkItem($Id) {
    $tmpArray = $this->CartArray;
    if (!is_array($tmpArray[0])) return;
    foreach ($tmpArray[0] as $item) {
      if ($item === $Id) return true;
    }
    return false;
  }
}
?>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應用程序,并傳遞相關參數方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實現依賴注入過程以及相關知識點分享,對此有興趣的朋友跟著小編學習下吧。
php遍歷一個文件夾內的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現達到清空一個目錄的效果。本文給大家分享實例代碼,需要的朋友參考
主站蜘蛛池模板: 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 广东成考网-广东成人高考网 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 一体化预制泵站-一体化提升泵站-一体化泵站厂家-山东康威环保 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 爆炸冲击传感器-无线遥测传感器-航天星百科| 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 上海赞永| 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 |