最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實現(xiàn)保存周期為1天的購物車類

 更新時間:2017年07月07日 14:40:50   作者:楓羽靈~  
這篇文章主要為大家詳細介紹了php實現(xiàn)保存周期為1天的購物車類,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

示例代碼:

<?php
/**
 * 購物車類 Cookies 保存,保存周期為1天 注意:瀏覽器必須支持Cookie才能夠使用
 */
class CartAPI {
  private $CartArray = array(); // 存放購物車的二維數(shù)組
  private $CartCount; // 統(tǒng)計購物車數(shù)量
  public $Expires = 86400; // Cookies過期時間,如果為0則不保存到本地 單位為秒
  /**
   * 構(gòu)造函數(shù) 初始化操作 如果$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 商品數(shù)量
   * @param string $Image 商品圖片
   * @return 如果商品存在,則在原來的數(shù)量上加1,并返回false
   */
  public function addCart($Id,$Name,$Price1,$Price2,$Price3,$Count,$Image) {
    $this->CartArray = $this->CartView(); // 把數(shù)據(jù)讀取并寫入數(shù)組
    if ($this->checkItem($Id)) { // 檢測商品是否存在
      $this->ModifyCart($Id,$Count,0); // 商品數(shù)量加$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();
  }
  /**
   * 修改購物車?yán)锏纳唐?
   *
   * @param int $Id 商品編號
   * @param int $Count 商品數(shù)量
   * @param int $Flag 修改類型 0:加 1:減 2:修改 3:清空
   * @return 如果修改失敗,則返回false
   */
  public function ModifyCart($Id, $Count, $Flag = "") {
    $tmpId = $Id;
    $this->CartArray = $this->CartView(); // 把數(shù)據(jù)讀取并寫入數(shù)組
    $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: // 添加數(shù)量 一般$Count為1
            $tmpArray[5][$Id] += $Count;
            break;
          case 1: // 減少數(shù)量
            $tmpArray[5][$Id] -= $Count;
            break;
          case 2: // 修改數(shù)量
            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 返回一個二維數(shù)組
   */
  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;
  }
  /**
   * 商品統(tǒng)計
   *
   * @return array 返回一個一維數(shù)組 $arr[0]:產(chǎn)品1的總價格 $arr[1:產(chǎn)品2得總價格 $arr[2]:產(chǎn)品3的總價格 $arr[3]:產(chǎn)品的總數(shù)量
   */
  public function CountPrice() {
    $tmpArray = $this->CartArray = $this->CartView();
    $outArray = array(); //一維數(shù)組
    // 0 是產(chǎn)品1的總價格
    // 1 是產(chǎn)品2的總價格
    // 2 是產(chǎn)品3的總價格
    // 3 是產(chǎn)品的總數(shù)量
    $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;
  }
  /**
   * 統(tǒng)計商品數(shù)量
   *
   * @return int
   */
  public function CartCount() {
    $tmpArray = $this->CartView();
    $tmpCount = count($tmpArray[0]);
    $this->CartCount = $tmpCount;
    return $tmpCount;
  }
  /**
   * 保存商品 如果不使用構(gòu)造方法,此方法必須使用
   *
   */
  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;
  }
}
?>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • php獲取服務(wù)器信息的實現(xiàn)代碼

    php獲取服務(wù)器信息的實現(xiàn)代碼

    php獲取服務(wù)器信息的一段代碼,包括獲取mysql數(shù)據(jù)庫版本信息、GD庫信息、php上傳相關(guān)信息等。有需要的朋友,可以參考下
    2013-02-02
  • PHP array 的加法操作代碼

    PHP array 的加法操作代碼

    PHP array 的加法操作過程中的一個問題,大家可以繼續(xù)往下看。
    2010-07-07
  • php將csv文件導(dǎo)入到mysql數(shù)據(jù)庫的方法

    php將csv文件導(dǎo)入到mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了php將csv文件導(dǎo)入到mysql數(shù)據(jù)庫的方法,通過讀取csv文件到數(shù)組再調(diào)用while循環(huán)實現(xiàn)插入數(shù)據(jù)到數(shù)據(jù)庫,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • php基本函數(shù)匯總

    php基本函數(shù)匯總

    本文給大家匯總了16個常見的php基本函數(shù),涵蓋的面很廣,這里推薦給大家,希望對大家學(xué)習(xí)php能夠有所幫助。
    2015-07-07
  • php cURL和Rolling cURL并發(fā)方式比較

    php cURL和Rolling cURL并發(fā)方式比較

    在實際項目或者自己編寫小工具(比如新聞聚合,商品價格監(jiān)控,比價)的過程中, 通常需要從第3方網(wǎng)站或者API接口獲取數(shù)據(jù), 在需要處理1個URL隊列時, 為了提高性能, 可以采用cURL提供的curl_multi_*族函數(shù)實現(xiàn)簡單的并發(fā)。
    2013-10-10
  • PHP調(diào)用FFMpeg實現(xiàn)音視頻操作的示例詳解

    PHP調(diào)用FFMpeg實現(xiàn)音視頻操作的示例詳解

    這篇文章主要為大家詳細介紹了PHP如何調(diào)用FFMpeg實現(xiàn)簡單的音視頻操作,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下
    2023-10-10
  • 詳解WordPress中調(diào)用評論模板和循環(huán)輸出評論的PHP函數(shù)

    詳解WordPress中調(diào)用評論模板和循環(huán)輸出評論的PHP函數(shù)

    這篇文章主要介紹了WordPress中調(diào)用評論模板和循環(huán)輸出評論的PHP函數(shù),分別是comments_template函數(shù)與wp_list_comments函數(shù)的使用,需要的朋友可以參考下
    2016-01-01
  • PHP通過引用傳遞參數(shù)用法分析

    PHP通過引用傳遞參數(shù)用法分析

    這篇文章主要介紹了PHP通過引用傳遞參數(shù)用法,結(jié)合具體實例分析了php函數(shù)參數(shù)中使用引用進行參數(shù)傳遞的功能與操作技巧,需要的朋友可以參考下
    2016-12-12
  • 如何在PHP中操作臨時文件

    如何在PHP中操作臨時文件

    關(guān)于文件相關(guān)的操作,想必大家已經(jīng)非常了解了,在將來我們刷到手冊中相關(guān)的文件操作函數(shù)時也會進行詳細的講解。今天,我們先來了解一下在 PHP 中關(guān)于臨時文件相關(guān)的一些內(nèi)容。
    2021-05-05
  • php mssql擴展SQL查詢中文字段名解決方法

    php mssql擴展SQL查詢中文字段名解決方法

    問題就出現(xiàn)在SQLServer中表的字段名是中文,寫好的查詢語句在SQLServe里測試是通過有記錄返回,用PHP的MSSQL擴展查詢就是報錯
    2012-10-10

最新評論

三门县| 文昌市| 上杭县| 辽中县| 胶南市| 莫力| 旌德县| 陆川县| 札达县| 昭觉县| 汕尾市| 靖西县| 民和| 延安市| 玉树县| 运城市| 玉树县| 资溪县| 舟曲县| 汕尾市| 阿拉善左旗| 济南市| 克什克腾旗| 昭觉县| 奈曼旗| 邵阳县| 延长县| 永昌县| 浮梁县| 小金县| 庆安县| 林甸县| 龙门县| 吉木乃县| 县级市| 南昌市| 泰和县| 湖南省| 宜州市| 白城市| 台安县|