一次生成多个优惠券代码;用逗号分隔


Generate multiple coupon codes at once; separated by comma

我发现了这个堆栈溢出帖子,解释了如何生成随机优惠券代码。

我正在研究使用该代码并一次生成多个优惠券(例如 50),同时用逗号分隔它们。

输出将是:COUPON-HMECN,COUPON-UYSNC,等。

下面的代码和代码板示例可用。

      $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      $res = "COUPON-";
      for ($i = 0; $i < 5; $i++) {
          $res .= $chars[mt_rand(0, strlen($chars)-1)];     
      }
      echo $res . ",";     
$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$numCodesToGenerate = 5;
for ($n = 0; $n < $numCodesToGenerate; $n++)
{
    $res = "COUPON-";
    for ($i = 0; $i < 5; $i++) {
      $res .= $chars[mt_rand(0, strlen($chars)-1)];     
    }
    echo $res . ","; 
}

为什么不使用uniqid()?

$coupon_str = '';
$seperator = '';
for($i = 0; $i < 50; $i++) {
    $coupon_str .= $seperator . uniqid('COUPON-');
    $seperator = ',';
}
echo $coupon_str;

输出:

COUPON-502373ac95dd2,COUPON-502373ac95de8,COUPON-502373ac95ded,....

这是一个更整洁(而且更快)的版本,可以满足您的需求:

function MakeCouponCode() {
  $res = "COUPON-";
  for($i = 0; $i < 5; ++$i)
    $res .= chr(mt_rand(0, 1) == 0 ? mt_rand(65, 90) : mt_rand(48, 57));
  return $res;
}
$coupons = array();
for($i = 0; $i < 5; ++$i)
  $coupons[] = MakeCouponCode();
echo implode(', ', $coupons);

输出:

COUPON-D707Y, COUPON-4B37E, COUPON-3O397, COUPON-M799X, COUPON-24Q36

您可以使用优惠券代码生成器 PHP 类文件生成 N 个优惠券及其可自定义,并提供各种选项,以添加自己的掩码和自己的前缀和后缀。优惠券代码以逗号分隔。简单的PHP优惠券代码生成器

例: coupon::generate(8); // J5BST6NQ