我想创建一个包含25个字母数字字符的随机字符串,当通过cron运行时,会将结果打印到key.txt文件。
最好的方法是什么?谢谢。
答案 0 :(得分:1)
有大量的教程,一个可能的解决方案(出于学习目的,那就是):
$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);
答案 1 :(得分:0)
只要关于如何生成随机字符串的圣经,我就能给你答案,但是你要读它们并对自己说:&#34;嗯,这很糟糕。&#34;。因此,我会简短地说明这一点。
// Generate random string
$randomString = uniqid();
这种方式不必长度为25个字符,因为生成的字符串始终是唯一的,并且是完美的密钥或文件名。
有关详细信息,请查看uniqid()
上的PHP Manual。
答案 2 :(得分:0)
这很容易解决您的问题。
通过你的长度变量来定义输出的长度。
function random_string( $length = 25 ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$password = substr( str_shuffle( $chars ), 0, $length );
return $password;
}
PS。它并不保证每个输出的唯一性。