2013年10月22日 星期二

PHP 字串.搜尋.取代,實作Session購物車

以往在實作商品購物車的時候都會先把顧客的商品儲存在Session裡,當顧客要結帳或者想暫時存放在自己的購物車時就能得知顧客選了哪些商品及數量。

說明:
此篇假設我選完商品,但我想取消某個商品。其他說明直接寫在程式碼註解中,不再多作解釋。

程式碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>字串.搜尋.取代</title>
</head>

<body>
<?php
$search_temp='P112'; //要取消的商品編號
$str_temp='P111=2;P112=1;P113=3;'; //假設這是商品編號=數量;
//取得字串起始位置
$start=strpos($str_temp,$search_temp); //strpos(字串,要搜尋的字串,起始位置) 起始位置如果是0可以不用寫
if(gettype($start)!="integer"){
$start=-1; //沒有找到字串
}
if ($start!=-1){
//不等於-1代表有找到商品
$end=strpos($str_temp,';',$start);
$end2=($end-$start)+1; //取幾個字元
$get_strtemp=mb_substr($str_temp,$start,$end2,'UTF-8');//取出某個範圍的字串 mb_substr(搜尋某個字串,起始位置,取幾個字元,'UTF-8')
echo $start.';'.$end."<br/>";
echo '擷取出來的字串,也就是要取消的商品:'.$get_strtemp."<br/>";
$str_temp=str_replace($get_strtemp,'',$str_temp); //取消的商品後的字串
echo $str_temp;
}else{
//等於-1沒有找到商品
echo '紀錄中沒有這項商品';
}

?>
</body>
</html>

沒有留言:

張貼留言