【发布时间】:2021-08-26 10:49:11
【问题描述】:
我想渲染这样一个键或类似的,但我不希望“-”符号出现在开头。我现在的代码意味着这个字符也可以在开头生成,我希望它永远不会在开头和结尾生成,而只能在末尾和开头的X字符之后的中间生成,其中X是从侧面算起的字符数
6LdBaA6aBxOAsj0AoTJ8rC-NbzpzAPgVaAz1bnAE
我的代码
// Generowanie Unique Key
if(!function_exists('genetateUniqueKey')){
function genetateUniqueKey($length = 40){
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0987654321-'.time();
$charactersLength = strlen($characters);
$randomString = '';
for($i = $length; $i > 0; $i--){
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
}
提前感谢您的帮助:)
【问题讨论】:
-
在
$characters不包括“-”的地方生成x个字符,然后在$characters包括“-”的地方生成更多字符,然后再次生成x其中不包括“-”...!? -
为什么不完全删除“-”?
-
@deceze 但是我应该怎么做才能让它运作良好并考虑到整个生成密钥的长度并且在这样一个块中“可扩展”,例如,当我给出长度为20,长度会减半,之后这个字符可以吗?
-
@Kondzio:字符串的长度如何影响它?对于长度为 X 的任何字符串...生成 1 字符,其中“-”不是选项;生成 X - 2 个字符,其中“-”是一个选项;生成 1 字符,其中“-”不是一个选项;连接三个结果。你有没有尝试过?什么不起作用?
-
不要气馁,但是,这是一个雄心勃勃的计划,如果您从这个问题开始......无论哪种方式,
-可能意味着 reCaptcha。如果它对你没有任何意义,为什么要将它包含在这些非常具体的规则中……?
标签: php random key generated-code