PHP如何呈现唯一键?
我想渲染这样一个键或类似的键,但我不希望在开头出现“-”符号。我的当前代码意味着这个字符也可以在开始时生成,并且我希望它永远不会在开始和结束时生成,而是只在X字符从结尾和开始之后的中间生成,其中x是从边字符的数量。PHP如何呈现唯一键?,php,random,key,generated-code,Php,Random,Key,Generated Code,我想渲染这样一个键或类似的键,但我不希望在开头出现“-”符号。我的当前代码意味着这个字符也可以在开始时生成,并且我希望它永远不会在开始和结束时生成,而是只在X字符从结尾和开始之后的中间生成,其中x是从边字符的数量。 6ldba6abxoasj0aotj8rc-NbzpzAPgVaAz1bnAE 我的代码 // Generowanie Unique Key if(!function_exists('genetateUniqueKey')){ function genetateUniqueK
6ldba6abxoasj0aotj8rc-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;
}
}
提前感谢您的帮助:)我正在对您的代码进行一些更改 将根据$length中的值从两侧修剪字符串 编辑:
对不起,我给错代码了。试试这个:
// Generowanie Unique Key
if (!function_exists('genetateUniqueKey')) {
function genetateUniqueKey($length = 40)
{
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0987654321';
$randomString = str_shuffle($characters) . "-" . str_shuffle($characters);
return substr($randomString, 55, $length);
}
}
在
$characters
排除“-”的位置生成x个字符,然后在$characters
排除“-”的位置生成更多字符,然后在排除“-”的位置再次生成x个字符…!?为什么不完全删除“-”呢?@deceze但我应该如何做才能使其工作良好,并考虑到整个生成密钥的长度,并且在这样一个块中是“可伸缩的”,例如,当我给出长度20时,长度将减少一半,这个字符可以在哪一个之后出现?@Kondzio:字符串的长度对它有什么影响?对于任何长度为X的字符串。。。生成1个字符,其中“-”不是选项;生成X-2个字符,其中“-”是一个选项;生成1个字符,其中“-”不是选项;连接三个结果。你试过了吗?什么不起作用?不要泄气,但是,这是一个雄心勃勃的计划,如果你从这个问题开始……不管怎样,-
可能意味着要重述一下。如果它对你来说没有任何意义,为什么要把它包括在这些非常具体的规则中…?洗牌字符串和重复挑选随机字符是非常不同的算法,在熵方面具有非常不同的属性。这段代码不起作用,因为它显示了100多个字符,所以你可能还没有检查它是否显示了正确的长度对不起,我错误地给出了错误的代码。我做了一些改变。请试一试