PHP生成唯一的促銷/優(yōu)惠/折扣碼(附源碼)
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、巨鹿網(wǎng)站維護(hù)、網(wǎng)站推廣。
每一個(gè)電子商務(wù)網(wǎng)站,現(xiàn)在有一種或多種類型的優(yōu)惠/折扣/優(yōu)惠券系統(tǒng),給大家分享一下如何在PHP生成唯一的促銷/折扣碼。主要是實(shí)現(xiàn)一個(gè)優(yōu)惠碼系統(tǒng),可用于跟蹤用戶來(lái)自某些特定的來(lái)源,例如有些主機(jī)促銷的時(shí)候鏈接到別的頁(yè)面會(huì)有優(yōu)惠碼生成,還有更多的促銷代碼等。因此,今天將討論這樣一個(gè)優(yōu)惠碼的實(shí)現(xiàn)過(guò)程
考慮的需求
代碼應(yīng)該很容易記住,因此保持短的長(zhǎng)度是一個(gè)好主意,使用戶可以很容易地記住它
沒(méi)有特殊字符!它應(yīng)該是字母數(shù)字組合,因?yàn)樗鼤?huì)永遠(yuǎn)是為用戶更容易記住
長(zhǎng)度推廣/折扣代碼的正確。沒(méi)有一個(gè)標(biāo)準(zhǔn)的長(zhǎng)度,因?yàn)樗Q于你想生成的長(zhǎng)度,例如,如果你想生成1000代碼的代碼,那么你需要在至少4個(gè)字符代碼。促銷/優(yōu)惠碼長(zhǎng)度通常為4到8個(gè)字符,但它取決于您的要求。
代碼如下:
?php
/**
* @param int
$no_of_codes//定義一個(gè)int類型的參數(shù) 用來(lái)確定生成多少個(gè)優(yōu)惠碼
* @param array
$exclude_codes_array//定義一個(gè)exclude_codes_array類型的數(shù)組
* @param int $code_length
//定義一個(gè)code_length的參數(shù)來(lái)確定優(yōu)惠碼的長(zhǎng)度
* @return array//返回?cái)?shù)組
*/
function
generate_promotion_code($no_of_codes,$exclude_codes_array='',$code_length = 4)
{
$characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$promotion_codes = array();//這個(gè)數(shù)組用來(lái)接收生成的優(yōu)惠碼
for($j = 0 ; $j
$no_of_codes; $j++)
{
$code = "";
for ($i = 0; $i $code_length;
$i++)
{
$code .= $characters[mt_rand(0, strlen($characters)-1)];
}
//如果生成的4位隨機(jī)數(shù)不再我們定義的$promotion_codes函數(shù)里面
if(!in_array($code,$promotion_codes))
{
if(is_array($exclude_codes_array))//
{
if(!in_array($code,$exclude_codes_array))//排除已經(jīng)使用的優(yōu)惠碼
{
$promotion_codes[$j] = $code;將生成的新優(yōu)惠碼賦值給promotion_codes數(shù)組
}
else
{
$j--;
}
}
else
{
$promotion_codes[$j] =
$code;//將優(yōu)惠碼賦值給數(shù)組
}
}
else
{
$j--;
}
}
return
$promotion_codes;
}
echo 'h1Promotion / Discount
Codes/h1';
echo 'pre';
print_r(generate_promotion_code(50,'',4));
echo '/pre';
?
該代碼由三個(gè)參數(shù)組成,
第一個(gè)參數(shù)是你要生成優(yōu)惠碼的個(gè)數(shù)(在這里是生成50個(gè))。第二個(gè)參數(shù)exclude
array,確保在當(dāng)前列表中的生成唯一優(yōu)惠碼,所以如果你已經(jīng)數(shù)據(jù)庫(kù)中有一些未使用的代碼,你可以把它傳遞給exclude。最后一個(gè)參數(shù)是優(yōu)惠碼的的長(zhǎng)度。這個(gè)函數(shù)將返回規(guī)定長(zhǎng)度的優(yōu)惠碼
這里是4位的優(yōu)惠碼。
這里我已經(jīng)使用數(shù)字和大寫(xiě)字母組合,賦值給$characters的字符串,你可以使用小寫(xiě)字母或任何其他的字母組合試用。此功能的作用是生成唯一的優(yōu)惠碼。這個(gè)是PHP版本的。
A用戶的數(shù)據(jù)表中含有以下字段
name
pass
time
ip
youhui (注冊(cè)時(shí)生成的優(yōu)惠字段)
當(dāng)B用戶通過(guò)A用戶的優(yōu)惠字段進(jìn)行注冊(cè)的時(shí)候系統(tǒng)自然就會(huì)判斷優(yōu)惠字段是否可用,
加個(gè)全局計(jì)數(shù)器 %10 == 0 就能領(lǐng)取,其它不能領(lǐng)取;全局計(jì)數(shù)器要注意并發(fā)
獎(jiǎng)品 id , 數(shù)量, 名稱,類型,圖片
然后隨機(jī)所有的獎(jiǎng)品id。每天不就不一樣了