日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > PHP > 正文

php實現仿寫CodeIgniter的購物車類

2020-03-22 20:33:20
字體:
來源:轉載
供稿:網友
本文實例講述了php實現仿寫CodeIgniter的購物車類。分享給大家供大家參考。具體如下: 這里仿寫CodeIgniter的購物車類 購物車基本功能: 1) 將物品加入購物車
2) 從購物車中刪除物品
3) 更新購物車物品信息 【+1/-1】
4) 對購物車物品進行統計
1. 總項目
2. 總數量
3. 總金額
5) 對購物單項物品的數量及金額進行統計
6) 清空購物車 cart.php文件如下: * @author quanshuidingdang html' target='_blank'>class Cart { //物品id及名稱規則,調試信息控制 private $product_id_rule = '.a-z0-9-_'; //小寫字母 | 數字 | ._- private $product_name_rule = '.:a-z0-9-_';//小寫字母 | 數字 | ._-: private $debug = TRUE; //購物車 private $_cart_contents = array(); * 構造函數 * @param array public function __construct() { //是否第一次使用 if(isset($_SESSION['cart_contents'])) { $this- _cart_contents = $_SESSION['cart_contents']; } else { $this- _cart_contents['cart_total'] = 0; $this- _cart_contents['total_items'] = 0; if($this- debug === TRUE) { //$this- _log("cart_create_success"); * 將物品加入購物車 * @access public * @param array 一維或多維數組,必須包含鍵值名: id - 物品ID標識, qty - 數量(quantity), price - 單價(price), name - 物品姓名 * @return bool public function insert($items = array()) { //輸入物品參數異常 if( ! is_array($items) OR count($items) == 0) { if($this- debug === TRUE) { $this- _log("cart_no_items_insert"); return FALSE; //物品參數處理 $save_cart = FALSE; if(isset($items['id'])) { if($this- _insert($items) === TRUE) { $save_cart = TRUE; } else { foreach($items as $val) { if(is_array($val) AND isset($val['id'])) { if($this- _insert($val) == TRUE) { $save_cart = TRUE; //當插入成功后保存數據到session if($save_cart) { $this- _save_cart(); return TRUE; return FALSE; * 更新購物車物品信息 * @access public * @param array * @return bool public function update($items = array()) { //輸入物品參數異常 if( !is_array($items) OR count($items) == 0) { if($this- debug === TRUE) { $this- _log("cart_no_items_insert"); return FALSE; //物品參數處理 $save_cart = FALSE; if(isset($items['rowid']) AND isset($items['qty'])) { if($this- _update($items) === TRUE) { $save_cart = TRUE; } else { foreach($items as $val) { if(is_array($val) AND isset($val['rowid']) AND isset($val['qty'])) { if($this- _update($val) === TRUE) { $save_cart = TRUE; //當更新成功后保存數據到session if($save_cart) { $this- _save_cart(); return TRUE; return FALSE; * 獲取購物車物品總金額 * @return int public function total() { return $this- _cart_contents['cart_total']; * 獲取購物車物品種類 * @return int public function total_items() { return $this- _cart_contents['total_items']; * 獲取購物車 * @return array public function contents() { return $this- _cart_contents; * 獲取購物車物品options * @param string * @return array public function options($rowid = '') { if($this- has_options($rowid)) { return $this- _cart_contents[$rowid]['options']; } else { return array(); * 清空購物車 public function destroy() { unset($this- _cart_contents); $this- _cart_contents['cart_total'] = 0; $this- _cart_contents['total_items'] = 0; unset($_SESSION['cart_contents']); * 判斷購物車物品是否有options選項 * @param string * @return bool private function has_options($rowid = '') { if( ! isset($this- _cart_contents[$rowid]['options']) OR count($this- _cart_contents[$rowid]['options']) === 0) { return FALSE; return TRUE; * 插入數據 * @access private * @param array * @return bool private function _insert($items = array()) { //輸入物品參數異常 if( ! is_array($items) OR count($items) == 0) { if($this- debug === TRUE) { $this- _log("cart_no_data_insert"); return FALSE; //如果物品參數無效(無id/qty/price/name) if( ! isset($items['id']) OR ! isset($items['qty']) OR ! isset($items['price']) OR ! isset($items['name'])) { if($this- debug === TRUE) { $this- _log("cart_items_data_invalid"); return FALSE; //去除物品數量左零及非數字字符 $items['qty'] = trim(preg_replace('/([^0-9])/i', '', $items['qty'])); $items['qty'] = trim(preg_replace('/^([0]+)/i', '', $items['qty'])); //如果物品數量為0,或非數字,則我們對購物車不做任何處理! if( ! is_numeric($items['qty']) OR $items['qty'] == 0) { if($this- debug === TRUE) { $this- _log("cart_items_data(qty)_invalid"); return FALSE; //物品ID正則判斷 if( ! preg_match('/^['.$this- product_id_rule.']+$/i', $items['id'])) { if($this- debug === TRUE) { $this- _log("cart_items_data(id)_invalid"); return FALSE; //物品名稱正則判斷 if( ! preg_match('/^['.$this- product_name_rule.']+$/i', $items['name'])) { if($this- debug === TRUE) { $this- _log("cart_items_data(name)_invalid"); return FALSE; //去除物品單價左零及非數字(帶小數點)字符 $items['price'] = trim(preg_replace('/([^0-9.])/i', '', $items['price'])); $items['price'] = trim(preg_replace('/^([0]+)/i', '', $items['price'])); //如果物品單價非數字 if( ! is_numeric($items['price'])) { if($this- debug === TRUE) { $this- _log("cart_items_data(price)_invalid"); return FALSE; //生成物品的唯一id if(isset($items['options']) AND count($items['options']) 0) { $rowid = md5($items['id'].implode('', $items['options'])); } else { $rowid = md5($items['id']); //加入物品到購物車 unset($this- _cart_contents[$rowid]); $this- _cart_contents[$rowid]['rowid'] = $rowid; foreach($items as $key = $val) { $this- _cart_contents[$rowid][$key] = $val; return TRUE; * 更新購物車物品信息(私有) * @access private * @param array * @return bool private function _update($items = array()) { //輸入物品參數異常 if( ! isset($items['rowid']) OR ! isset($items['qty']) OR ! isset($this- _cart_contents[$items['rowid']])) { if($this- debug == TRUE) { $this- _log("cart_items_data_invalid"); return FALSE; //去除物品數量左零及非數字字符 $items['qty'] = preg_replace('/([^0-9])/i', '', $items['qty']); $items['qty'] = preg_replace('/^([0]+)/i', '', $items['qty']); //如果物品數量非數字,對購物車不做任何處理! if( ! is_numeric($items['qty'])) { if($this- debug === TRUE) { $this- _log("cart_items_data(qty)_invalid"); return FALSE; //如果購物車物品數量與需要更新的物品數量一致,則不需要更新 if($this- _cart_contents[$items['rowid']]['qty'] == $items['qty']) { if($this- debug === TRUE) { $this- _log("cart_items_data(qty)_equal"); return FALSE; //如果需要更新的物品數量等于0,表示不需要這件物品,從購物車種清除 //否則修改購物車物品數量等于輸入的物品數量 if($items['qty'] == 0) { unset($this- _cart_contents[$items['rowid']]); } else { $this- _cart_contents[$items['rowid']]['qty'] = $items['qty']; return TRUE; * 保存購物車數據到session * @access private * @return bool private function _save_cart() { //首先清除購物車總物品種類及總金額 unset($this- _cart_contents['total_items']); unset($this- _cart_contents['cart_total']); //然后遍歷數組統計物品種類及總金額 $total = 0; foreach($this- _cart_contents as $key = $val) { if( ! is_array($val) OR ! isset($val['price']) OR ! isset($val['qty'])) { continue; $total += ($val['price'] * $val['qty']); //每種物品的總金額 $this- _cart_contents[$key]['subtotal'] = ($val['price'] * $val['qty']); //設置購物車總物品種類及總金額 $this- _cart_contents['total_items'] = count($this- _cart_contents); $this- _cart_contents['cart_total'] = $total; //如果購物車的元素個數少于等于2,說明購物車為空 if(count($this- _cart_contents) = 2) { unset($_SESSION['cart_contents']); return FALSE; //保存購物車數據到session $_SESSION['cart_contents'] = $this- _cart_contents; return TRUE; * 日志記錄 * @access private * @param string * @return bool private function _log($msg) { return @file_put_contents('cart_err.log', $msg, FILE_APPEND); /*End of file cart.php*/ /*Location /htdocs/cart.php*/ cart_demo.php文件如下: session_start(); require_once('cart.php'); $items = array( 0 = array( 'id' = 'sp001', 'qty' = 20, 'price' = '10.50', 'name' = 'a002', 'options' = array( 'made' = 'china', 'company' = 'bgi' 1 = array( 'id' = 'sp002', 'qty' = 1, 'price' = '3.50', 'name' = 'b002' $arr = array( 'rowid' = '86dbb7cb58a667558b4bbb1f60330028', 'qty' = 21 $cart = new Cart(); $cart- insert($items); //var_dump($cart- contents()); $cart- update($arr); var_dump($cart- contents()); //$cart- destroy(); //var_dump($_SESSION['cart_contents']); /*end of php*/ 希望本文所述對大家的php程序設計有所幫助。
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
黄色欧美日韩| 日本中文字幕在线观看| 日韩美女中文字幕| 99久久婷婷| 97最新国自产拍视频在线完整在线看| 中文字幕精品在线视频| 亚洲羞羞网站| 欧美日韩高清在线| 国产成人中文字幕| 欧美日韩国产中文精品字幕自在自线 | 国产一级片播放| 亚洲成av人片| 国产传媒久久久| 欧美日韩综合色| 日韩精品在线观看网站| 红桃视频国产一区| 日韩欧美不卡| 91精品国产自产观看在线| 日本熟女一区二区| 91久久精品国产91久久| 91精品视频观看| 欧美日韩国产大片| 久久中文免费视频| 国产无套粉嫩白浆在线2022年| www日韩在线观看| 中文字幕亚洲在| 欧美日韩亚洲国产综合| 日韩精品丝袜在线| 91精品国产自产在线| 国产日韩精品在线| 在线看的av| 日韩欧美在线视频日韩欧美在线视频| 亚洲欧美中文字幕在线一区| 一区二区三区鲁丝不卡| 一区二区三区精品在线观看| 91精品在线观| 91精品国产经典在线观看| 精品视频www| www.久久久精品| 国产激情99| 欧美日韩亚州综合| 色国产在线视频| 精品久久人人做人人爽| 国产在线欧美日韩| 亚洲第一视频在线观看| 欧美日韩国产综合视频在线观看| 中文字幕精品亚洲| 国产成人精品免费在线| aaa大片在线观看 | 亚洲免费精品| 欧美专区中文字幕| 中文字幕日韩免费视频| 韩日中文字幕第一页| 国产成人精品免费网站| 伊人永久在线| 国产不卡一区二区在线观看| 欧美99久久| 中文字幕在线观看精品| 中文字幕亚洲视频| 91精品国产91久久久久久三级| 色屁屁一区二区| 亚洲午夜av| 国产视频二区| 亚洲区中文字幕| 国产91大片| 内射国产内射夫妻免费频道| 视频一区三区| 精品欧美日韩| 久艹在线视频| 首页国产欧美久久| 国产一二三视频| 亚洲福利精品视频| 日韩一级在线视频| 国产一级片在线播放| 日韩在线小视频| 欧美一级日韩一级| 91精品国产丝袜白色高跟鞋| 欧美日韩国产区| 蜜桃精品视频| 亚洲免费观看在线观看| 中文字幕久精品免费视频| 国产免费久久| 色综合天天综合网天天狠天天 | 精品成人久久av| 91精品国产综合久久久久久| 国产欧美日韩中文| 欧美成人一区二区| 日韩欧美高清在线视频| 亚洲欧洲精品在线| 99在线精品视频免费观看20| 久久蜜桃一区二区| 国产日韩中文在线| 国产日韩1区| 欧美高清一级片在线| 九九视频精品免费| 亚洲国产91精品在线观看| www.xxxx精品| av免费在线网站| 美女在线视频一区| 国产99亚洲| 日韩亚洲一区中文字幕| 国产欧美综合在线| 日韩精品视频在线看| 91蜜桃婷婷狠狠久久综合9色| 欧美在线日韩在线| 91精品国产经典在线观看| 91精品国产全国免费观看| 精品人妻二区中文字幕| 日韩视频不卡中文| 亚洲中文字幕一区| 日韩欧美在线网址| 中文字幕精品一区二区三区在线| 日韩欧美综合| 国产三级视频在线| 欧美日韩中文另类| 91精品国产经典在线观看| 国产乱国产乱老熟300部视频| 中文字幕久久av| 欧美精选午夜久久久乱码6080| 伊人www22综合色| 日韩.com| 精品中文在线| 国产字幕在线看| 欧美 日韩 综合| 日韩精品久久久| 在线视频不卡一区二区| 在线精品视频免费播放| 精品国产99久久久久久| 亚洲最新永久观看在线| 中文字幕 欧美 日韩| 中文字幕99| 亚洲综合中文字幕在线| 欧美日韩国产不卡| 91精品国产丝袜白色高跟鞋| 国产裸体歌舞团一区二区| 日韩福利视频导航| 久久精品一级爱片| 欧美日韩精品综合在线| 欧美日韩视频免费播放| 欧美日韩在线不卡视频| 中文字幕第一页在线播放| 国产一级在线播放| 在线国产日本| 亚洲大片精品永久免费| 精品久久久三级| 首页国产欧美久久| 黄色一区二区在线观看| 99在线精品视频免费观看20| 中文字幕精品一区二| 日韩中文欧美在线| 亚洲一区精品在线| 一区二区不卡视频在线观看| 亚洲最大黄色| 国产欧美日韩亚州综合| 99精品在线播放| 亚洲久草视频| 欧美日韩国产一级片| 区日韩二区欧美三区| 韩国av一区二区| 国产高清在线视频| 欧美日韩免费高清| 国产一二三精品| 国产蜜臀在线| 欧美大片在线观看一区| 国产不卡的av| 日韩亚洲不卡在线| 久久精品免费在线观看| 91久久久精品国产| 最近免费中文字幕在线第一页| 一区二区在线观看不卡| 日韩一级网站| 国产1卡2卡三卡四卡网站| 欧美日韩激情一区二区三区| 在线观看av的网站| 国产三级在线| www.中文字幕在线观看| 欧美日韩久久久| 欧美日韩人人澡狠狠躁视频| 天堂精品高清1区2区3区| 欧美 日韩 中文字幕| 国产伦精品免费视频| 日韩午夜高潮| 免费视频最近日韩| 在线一区免费| 日韩欧美色综合网站| 在线亚洲免费| 久久激情中文| 欧美不卡123| 久久电影国产免费久久电影| 国产高清精品在线| 欧美日韩精品中文字幕| 五月综合激情日本mⅴ| 亚洲一区在线观看视频| 国产欧美日韩精品在线| 欧美日韩成人综合| 中文在线第一页| 亚洲最新永久观看在线| 国产在线欧美| 在线视频国内一区二区| 欧美日韩亚洲天堂| 中文av字幕一区| 欧美国产一级片| 欧美.日韩.国产.一区.二区| 日韩免费电影网站| 国产不卡视频在线| 本道综合精品| 久久精品网站免费观看| 狠狠色综合色区| 国产三级视频在线| 日韩欧美在线不卡| 国产三级中文字幕| 欧美亚洲国产日韩| 日韩欧美国产免费| 中文字幕国产在线| 亚洲免费视频一区| 久久夜色精品国产欧美乱极品| 久久精品国产视频| 日韩精品丝袜在线| 国产裸舞福利在线视频合集| 精品日韩视频在线观看| 影音先锋一区二区资源站| 亚洲乱码中文字幕| 日韩精品福利一区二区三区| 精品日韩视频在线观看| 中文字幕国产在线| 国产成人精品免费久久久久| 999精品在线| 黄色一区二区视频| 欧美日韩国产一区中文午夜| 国产无遮挡在线视频免费观看| 欧美不卡123| 99视频一区| 午夜成人鲁丝片午夜精品| 国产日韩av一区二区| 日韩中文字幕在线一区| 国产在线导航| 中文字幕精品一区二区三区在线| 91精品国产综合久久香蕉最新版| 天堂在线中文资源| 免费网站看黄yyy222| 久久精品久久精品亚洲人| 亚洲免费在线视频一区 二区| 99综合视频| 中文在线一区| 日韩精品在线第一页| 韩国av一区二区| 欧美性生交大片免费| 久久精品网站免费观看| 欧美日韩日本视频| 欧美日韩亚洲第一| 亚洲图片小说综合| 亚洲精华国产欧美| 韩国av一区二区| 欧美日韩国产一区在线| 日本亚洲欧美三级| 中文字幕在线中文字幕二区| 在线视频亚洲| 亚洲欧洲日韩在线| 久久婷婷中文字幕| 中文精品视频| 欧美日韩精品中文字幕| 日韩中文字幕亚洲| 在线国产一级| 五月天久久比比资源色| 日韩黄色在线播放| 国产一区在线不卡| 91av久久久| 日本免费在线视频不卡一不卡二| 视频一区日韩| 日韩欧美国产免费| 欧美日韩国产高清| 亚洲免费视频一区| 日本精品在线播放| 日韩欧美国产片| 欧美日韩午夜在线| 国产一区深夜福利| 日韩欧美专区在线| 国产网站av| 亚洲欧美99| 精品日韩在线观看| 免费在线观看国产黄| 久久综合九色欧美综合狠狠| 亚洲图片小说综合| 日韩欧美高清在线视频| 顶级网黄在线播放| 日韩国产一区久久| 欧美日韩人人澡狠狠躁视频| www.91香蕉视频| 国产香蕉精品视频| 久久精品夜夜夜夜久久| 91精品在线观看国产| 欧美三级一区二区三区| 日韩视频专区| 日韩美女中文字幕| 一区二区三区精品在线| 日韩精品在线免费播放| 91精品电影| 久久久精品网| 日韩av综合在线观看| 国产亚洲欧美色| 九一久久久久久| 日韩欧美一级二级三级久久久| 精品av中文字幕在线毛片| 中文 欧美 日韩| 国自产拍在线网站网址视频| 欧美熟妇乱码在线一区| 国产成人精品av久久| 免费网站看黄yyy222| 国产专区中文字幕| 日韩综合精品| 在线精品视频免费播放| 色综合天天综合网国产成人综合天| av一区在线| www.狠狠| 天堂在线中文| 尤物av一区二区| 亚洲免费视频一区| 日韩中文字幕在线视频观看| 日韩高清在线一区二区| 国产对白在线| 亚洲成年人影院在线 | 精品熟女一区二区三区| 91精品国产综合久久精品| 国产激情久久久| 国产永久在线观看| 日韩欧美亚洲国产一区| 欧美在线日韩精品| 中文字幕精品视频在线| 亚洲欧美伊人| 91精品国产91久久久久青草| 久精品在线观看| 国产乱一区二区| 欧美日韩国产首页| www中文字幕在线观看| 欧美三级中文字幕| 欧美日韩999| 天堂在线中文资源| 精品国产乱码久久久久久蜜臀| 精品国产乱码久久久久久牛牛| 精品福利一区二区三区| 在线视频不卡国产V| 91国内在线| 亚洲第一视频网站| 久久中文免费视频| 亚洲一区在线观看免费| a√免费观看在线网址www| 精品久久久视频| 日韩中文首页| 精品熟女一区二区三区| 日韩久久精品成人| 日韩.com| 精品国内自产拍在线视频| 日韩精品视频在线观看视频| 精品三区视频| 国产高清在线视频| 欧美亚洲天堂网| 日韩在线视频免费观看高清中文| 在线国产91| 黄色片免费看| 国产在线观看精品| 久久精品久久精品亚洲人| 欧美日韩成人一区| 婷婷中文字幕一区三区| 日韩久久久精品| 日韩欧美国产综合| 1区2区在线| 亚州福利视频| 99中文字幕一区| 在线中文字幕视频| 国产卡1卡2卡三卡在线| 国产最新在线| 黄色精品在线观看| 国产一二三四| 日韩av一区二| 一区三区视频| 中文字幕日韩高清| 久久精品夜夜夜夜久久| 欧美日韩国产片| 国产一区 二区 三区一级| 亚洲成av人综合在线观看| 欧美性极品xxxx做受| 日韩国产一区久久| 欧美婷婷精品激情| 九色蝌蚪视频在线| 高清一区二区| 欧美日韩一级黄| 日韩欧美不卡在线| 免费高清特黄a大片| 日韩高清不卡在线| 日韩在线视频中文字幕| 伊人精品视频| 国产一区免费视频| 蜜臀久久精品| 日韩在线观看a| 国产色综合网| 欧美国产一级片| 日韩专区视频网站| 日韩精品久久久| 91精品国产调教在线观看| 91麻豆视频网站|