我想创建一个由25个字母数字字符组成的随机字符串,当通过cron运行时,会将结果打印到key.txt文件中。
最好的方法是什么?非常感谢。
有很多教程,一个可能的解决方案(为了学习目的)是:
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
// alternatively: implode('', array_merge(range(0,9),range('a', 'z'), range('A', 'Z')));
$length = 25;
$string = '';
for ($i = 0; $i < $length; $i++)
$string .= $chars[rand(0, strlen($chars) - 1)];
// save it to a file
file_put_contents("key.txt", $string);
这是解决问题的简单函数。
传递长度变量以定义输出的长度。
function random_string( $length = 25 ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$password = substr( str_shuffle( $chars ), 0, $length );
return $password;
}
PS。它不能保证每个输出的唯一性。
我可以给你关于如何生成随机字符串的答案,就像圣经一样长,但你会阅读它们并对自己说:"好吧,这太糟糕了。"所以我会简明扼要。
// Generate random string
$randomString = uniqid();
这样,它就不必是25个字符长,只要生成的字符串始终是唯一的,并且是一个完美的密钥或文件名。
有关更多信息,请参阅uniqid()
上的PHP手册。