【发布时间】:2011-05-20 08:51:22
【问题描述】:
我正在尝试在 PHP 中创建一个随机字符串,但我绝对没有输出:
<?php
function RandomString()
{
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randstring = '';
for ($i = 0; $i < 10; $i++) {
$randstring = $characters[rand(0, strlen($characters))];
}
return $randstring;
}
RandomString();
echo $randstring;
我做错了什么?
【问题讨论】:
-
我生成短字符串的单行解决方案是 substr(md5(rand()), 0, 7);祝你好运......
-
@tasmaniski .. 你的解决方案没问题.. 但它的随机性较低!在您的示例中,可以生成的随机字符串的数量受整数大小的限制。 ( 2^32 ) 最大.. 如果是其他解决方案,您可以生成 ( 62^8 ).. 如果我想要更大的字符串,那么不同字符串的数量保持在最大 2^32,但在其他解决方案它增加到( 62^n )..
-
您忘记将每个新生成的字符添加到字符串中。您只是按原样覆盖它。应该是 $randstring .= $characters..
-
@CaptainLightning 您能否将接受的答案换成更安全的答案之一? :)
-
strlen($characters)=>strlen($characters) - 1- 字符串长度从 1 开始