-1

我发现这篇Stack Overflow 帖子解释了如何生成随机优惠券代码。

我正在研究使用该代码并一次生成多张优惠券(例如 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 . ",";     
4

4 回答 4

0
$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 . ","; 
}
于 2012-08-09T08:18:48.307 回答
0

这是一个更简洁(更快)的版本,可以满足您的需要:

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
于 2012-08-09T08:23:32.440 回答
0

为什么不使用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,....
于 2012-08-09T08:26:08.813 回答
0

您可以使用优惠券代码生成器 PHP 类文件来生成 N 数量的优惠券及其可定制的,具有添加自己的前缀和后缀的自己的掩码的各种选项。优惠券代码以逗号分隔。简单的 PHP 优惠券代码生成器

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

于 2015-11-27T07:34:28.523 回答