用于生成体面的优惠券代码的PHP代码(字母和数字的混合)

QAQ*_*est 13 php random

对于电子商务网站,我想生成一个随机优惠券代码,该代码看起来比随机生成的价值更好.它应该是一个可读的优惠券代码,全部为大写,没有特殊字符,只有字母(AZ)和数字(0-9).

由于人们可能正在阅读它/在其他地方打印它,我们需要使它成为一个简单的通信值,也许8到10个字符长.

也许是这样的事情,

AHS3DJ6BW 
B83JS1HSK
Run Code Online (Sandbox Code Playgroud)

(我打字,所以它不是那么随意)

Art*_*cto 41

$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$res = "";
for ($i = 0; $i < 10; $i++) {
    $res .= $chars[mt_rand(0, strlen($chars)-1)];
}
Run Code Online (Sandbox Code Playgroud)

您可以通过预先分配$res字符串并缓存结果来优化它strlen($chars)-1.这留给读者一个练习,因为你可能不会每秒产生数千张优惠券.


Gum*_*mbo 20

试试这个:

substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10)
Run Code Online (Sandbox Code Playgroud)