PHP購(gòu)物車類_PHP教程
推薦:怎樣得到一個(gè)字符串的最后一個(gè)字符PHP技巧:得到一個(gè)字符串的最后一個(gè)字符 ?php 得到PHP中最后一個(gè)字符 str = www.dwww.cn ; var = trim(str); len = strlen(var)-1; echo var{len}; ?
因?yàn)樾枨笾兄挥涗洰a(chǎn)品的類型,還有編號(hào)..比如食物,,然后什么編號(hào),,這樣子.所以沒(méi)有記錄產(chǎn)品的數(shù)量..要用的自己改進(jìn)一下就行了.
<?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的類,用于我的計(jì)劃的本地信息的更改
* LIQUAN
*/
class cart
{
/*
實(shí)現(xiàn)COOKIES購(gòu)物車
@type 產(chǎn)品類型
@id 產(chǎn)品編號(hào)
COOKIES的結(jié)果為 type1:3,45,23|type2:34,234,34|type3:344,124
*/
function cartAdd(type,id)
{
//如果第一次使用,則重新設(shè)置COOKIES
if(!isset(_COOKIE["cart"]))
{
setcookie("cart",type.":".id);
}
else
{
//如果不是第一次,則先取出來(lái)
cartStr=_COOKIE["cart"];
//把結(jié)果分開(kāi)
cartarray=split("\|",cartStr);
//用于判斷類型是否存在,初始不存在,為零
istype=0;
//產(chǎn)品編號(hào)列表
id_list;
//循環(huán)產(chǎn)品
for (i=0;i<count(cartarray);i++)
{
//獲取產(chǎn)品名和產(chǎn)品編號(hào)列表
list(carttype,product)=split(":",cartarray[i]);
//如果已經(jīng)存在的產(chǎn)品與要保存的相如,把isType改為1,說(shuō)明產(chǎn)品已經(jīng)存在
if (type==carttype)
{
istype=1;
//獲取產(chǎn)品的編號(hào)列表
id_list=product;
//中斷循環(huán)
break ;
}
}
//如果產(chǎn)品不存在
if(istype==0)
{
//往COOKIES里面加入新產(chǎn)品和產(chǎn)品的編吃
cartStr=cartStr."|".type.":".id;
}
else
{
//把產(chǎn)品列表分開(kāi)成數(shù)組
id_list=split("\,",id_list);
//標(biāo)識(shí)產(chǎn)口編號(hào)是否存在,初始不存在
isId=0;
//循環(huán)產(chǎn)品編號(hào)
for(i=0;i<count(id_list);i++)
{
//如果要保存的產(chǎn)品編號(hào)已尼存在
if(id==id_list[i])
{
//標(biāo)識(shí)已存在.退出循環(huán)
isId=1;
break;
}
}
//這里只做產(chǎn)品類型和產(chǎn)品編號(hào),所以相同的不加數(shù)量,直接不外理
//如果相關(guān)類型的產(chǎn)品編號(hào)不存在,則加上新的編號(hào)
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 ;
}
//返回相應(yīng)的產(chǎn)品列表
/*
@type產(chǎn)品類型
*/
function getProInfo(type)
{
//獲取購(gòu)物車COOKIES
cartStr=_COOKIE["cart"];
//匹配COOKIES字符,獲取產(chǎn)品列表
preg_str=type.":((\d+),)*(\d+)";
//echo "<br>";
preg_match("/".preg_str."/",cartStr,proStr);
//echo proStr[0];
//exit();
list(protype,product)=split(":",proStr[0]);
return product;
//pro_list=split(",",product);
//返回產(chǎn)品列表
//return pro_list;
// print_r(pro_list);
}
/*
*刪除產(chǎn)品
*@type產(chǎn)品類型名
*@id 產(chǎn)品編號(hào)
*/
function delProInfo(type,id)
{
//獲取購(gòu)物車COOKIES
cartStr=_COOKIE["cart"];
//匹配COOKIES字符,獲取產(chǎn)品列表
preg_str=type.":((\d+),)*(\d+)";
//echo "<br>";
preg_match("/".preg_str."/i",cartStr,proStr);
//只有能找到要?jiǎng)h除的類型,才進(jìn)行下面操做
if(proStr)
{
//查詢刪除的類型里面是否有要?jiǎng)h除的ID
isproId=strstr(proStr[0],id);
//如果有,才進(jìn)行下面操作
if(isproId)
{
//更新后的產(chǎn)品字符串
upproStr;
//更新后的所有最新的產(chǎn)品COOKIES字符
newCartStr;
//查詢要?jiǎng)h除的產(chǎn)品是否有多個(gè)
preg_match("/,/",proStr[0],isend);
//如果有,進(jìn)行下面操作
if(isend)
{
//查詢要?jiǎng)h除的產(chǎn)品后面是否還有產(chǎn)品
preg_match("/".id.",/",proStr[0],isdot);
//如果有,刪除后面的逗號(hào)
if(isdot)
{
upproStr=str_replace(id.",","",proStr[0]);
}
//如果沒(méi)有,刪除前面的逗號(hào)
else
{
upproStr=str_replace(",".id,"",proStr[0]);
}
//更新要插入COOKIES里面的字符串
newCartStr=str_replace(proStr[0],upproStr,cartStr);
}
//如果沒(méi)有多個(gè),則直接刪除該類產(chǎn)品
else
{
//判斷該類產(chǎn)品后面還有沒(méi)有產(chǎn)品
preg_match("/".proStr[0]."\|/",cartStr,issu);
//如果有,則刪除后面的分格符
if(issu)
{
newCartStr=str_replace(proStr[0]."|","",cartStr);
}
//如果沒(méi)有,則刪除前面的分格符
else
{
newCartStr=str_replace("|".proStr[0],"",cartStr);
}
}
setcookie("cart",newCartStr);
}
}
}
function deletecart()
{
setcookie("cart","",time()-100);
}
}
?>
分享:PHP將漢字轉(zhuǎn)換拼音?php d=array( array(a,-20319), array(ai,-20317), array(an,-20304), array(ang,-20295), array(ao,-20292), array(ba,-20283), array(bai,-20265), array(ban,-20257), array(bang,-20242), array(bao,-20230), array(bei,-20051),
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 單元測(cè)試對(duì)PHP代碼的檢查
- 詳解PHP下載文件名亂碼問(wèn)題
- php gzip壓縮輸出的實(shí)現(xiàn)方法
- php cli模式學(xué)習(xí)(PHP命令行模式)
- setcookie中Cannot modify header information-headers already sent by錯(cuò)誤的解決方法詳解
- PHP編程之PHP操作文件類
- 將IP地址轉(zhuǎn)換為整型數(shù)字的PHP方法、Asp方法和MsSQL方法、MySQL方法
- PHP經(jīng)驗(yàn)交流:php訪問(wèn)access的方法
- PHP插入排序?qū)崿F(xiàn)代碼
- 如何寫(xiě)出好的 PHP 代碼?
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-PHP購(gòu)物車類
。