我发现了这个堆栈溢出帖子,解释了如何生成随机优惠券代码。
我正在研究使用该代码并一次生成多个优惠券(例如 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