我有这个脚本生成随机的促销代码。如何改善这个随机促销代码生成器脚本?
}
$length = 10;
$characters = '123456789ABCDEFGHJKMNPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$event = $request->event;
$prefix = $request->prefix;
$quantity = $request->quantity;
$randomString = '';
for ($x = 0; $x <= $quantity; $x++) {
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
$pin = "$prefix"."$randomString";
$exists = Pin::where('pin', $pin)->first();
if(!$exists){
$new['pin'] = $pin;
$new['event'] = $event;
$new['user'] = '';
Pin::create($new);
}
$randomString = '';
}
它的工作原理,但需要进行优化,因为它可能需要永远执行,当$数量超过几千。
我怀疑时间是寻找引脚是否存在的位。我确定必须有一种更有效的方法来确保随机字符串是唯一的。
想法?谢谢!
******正如指出的随机哈希生成这里已经解决******
也许部分2到这个问题,然后...
客户端请求一组为随机码选择字符 - '123456789ABCDEFGHJKMNPQRSTUVWXYZ'。有没有办法限制由MD5散列字符输出?
感谢指出了这一点约翰。我确实读过这个问题。我不认为这是一个愚蠢的事情,因为我试图批量生成,并创建像例子那样的广告。但是,现在我正在重新思考整个方法。 – RushVan