我真的不知道如何去做,但对于我来说,每个索引的每个rand_string
都有很好的成就。
我的代码:
function rand_string($length) {
$str="";
$chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen($chars);
for($i = 0; $i < $length; $i++) {
$str .= $chars[rand(0, $size-1)];
}
return $str;
}
$pcode = rand_string(4);
for ($b = 0; $b < 3; $b++) {
echo $pcode[$b];
}
我期待输出中出现类似9cwm cZnu c9e4
的内容。我能用PHP实现吗?
目前,通过我的代码,我在每个索引中都会收到来自rand_string
的字符串,例如9cw
。
答案 0 :(得分:1)
您的代码有效,您只需在第二个循环中调用rand_string
即可获得类似 9cwm cZnu c9e4 (您在问题中描述的内容)。
这是一个有效的例子:
function rand_string($length) {
$str="";
$chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen($chars);
for($i = 0;$i < $length;$i++) {
$str .= $chars[rand(0,$size-1)];
}
return $str;
}
// call rand_string inside for loop
for ($b = 0; $b<3; $b++) {
echo rand_string(4).' ';
}
答案 1 :(得分:0)
字符串的生成实际上适用于您的代码。您没有正确调用/打印该功能。只需调用该函数三次并打印所有结果(中间有空格)。
,而不是打印,你可以将它们连接在一起,然后删除最后一个空格。<?php
function rand_string($length) {
$str="";
$chars = "abcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen($chars);
for($i = 0;$i < $length;$i++) {
$str .= $chars[rand(0,$size-1)];
}
return $str;
}
for ($b = 0; $b<3; $b++)
{
echo rand_string(4)." ";
}
答案 2 :(得分:-1)
如果您不介意使用完全不同的方法,限制为32个字符:
return substr(md5(mt_rand().time()), 0, $length);
这不是超级随机,但你得到了图片......
感谢CM和user2693053引起我的注意(更新后的答案)
mt_rand()
代替rand()
md5()
长度为32 ......