如何在PHP中生成唯一的促銷/優惠碼(附源碼)


每一個電子商務網站,現在有一種或多種類型的優惠/折扣/優惠券系統,給大家分享一下如何在PHP生成唯一的促銷/折扣碼。主要是實現一個優惠碼系統,可用於跟蹤用戶來自某些特定的來源,例如有些主機促銷的時候鏈接到別的頁面會有優惠碼生成,還有更多的促銷代碼等。因此,今天將討論這樣一個優惠碼的實現過程

考慮的需求

  • 代碼應該很容易記住,因此保持短的長度是一個好主意,使用戶可以很容易地記住它
  • 沒有特殊字符!它應該是字母數字組合,因為它會永遠是為用戶更容易記住
  • 長度推廣/折扣代碼的正確。沒有一個標准的長度,因為它取決於你想生成的長度,例如,如果你想生成1000代碼的代碼,那么你需要在至少4個字符代碼。促銷/優惠碼長度通常為4到8個字符,但它取決於您的要求。

那好吧,讓我們開始吧!讓我們來看看代碼,然后我會詳細解釋。它很容易

 1 <?php
 2 /**
 3  * @param int $no_of_codes//定義一個int類型的參數 用來確定生成多少個優惠碼
 4  * @param array $exclude_codes_array//定義一個exclude_codes_array類型的數組
 5  * @param int $code_length //定義一個code_length的參數來確定優惠碼的長度
 6  * @return array//返回數組
 7  */
 8 function generate_promotion_code($no_of_codes,$exclude_codes_array='',$code_length = 4)
 9 {
10     $characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
11 
12     $promotion_codes = array();//這個數組用來接收生成的優惠碼
13     for($j = 0 ; $j < $no_of_codes; $j++)
14     {
15         $code = "";
16         for ($i = 0; $i < $code_length; $i++)
17         {
18             $code .= $characters[mt_rand(0, strlen($characters)-1)];
19         }
20           //如果生成的4位隨機數不再我們定義的$promotion_codes函數里面
21         if(!in_array($code,$promotion_codes))
22         {
23             if(is_array($exclude_codes_array))//
24             {
25                 if(!in_array($code,$exclude_codes_array))//排除已經使用的優惠碼
26                 {
27                     $promotion_codes[$j] = $code;將生成的新優惠碼賦值給promotion_codes數組
28                 }
29                 else
30                 {
31                     $j--;
32                 }
33             }
34             else
35             {
36                 $promotion_codes[$j] = $code;//將優惠碼賦值給數組
37             }
38         }
39         else
40         {
41             $j--;
42         }
43     }
44     return $promotion_codes;
45 }
46 echo '<h1>Promotion / Discount Codes</h1>';
47 echo '<pre>';
48 print_r(generate_promotion_code(50,'',4));
49 echo '</pre>';
50 ?>

 該代碼由三個參數組成,
第一個參數是你要生成優惠碼的個數(在這里是生成50個)。第二個參數exclude array,確保在當前列表中的生成唯一優惠碼,所以如果你已經數據庫中有一些未使用的代碼,你可以把它傳遞給exclude。最后一個參數是優惠碼的的長度。這個函數將返回規定長度的優惠碼 這里是4位的優惠碼。

這里我已經使用數字和大寫字母組合,賦值給$characters的字符串,你可以使用小寫字母或任何其他的字母組合試用。此功能的作用是生成唯一的優惠碼。這個是PHP版本的,下一次給一個NET版本的,希望能幫助大家

演示  下載

123


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM