使用PHP生成test-16DIGIT哈希。但是,当我尝试将它打印到屏幕上时,回声"它产生了相同的5个结果。
我想为每个循环生成5个不同的结果。
<?php
function generateRandomString($length = 16) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
//16 hanelik kodu buyutuyorum
$uret = generateRandomString();
$buyut = strtoupper($uret);
echo str_repeat("1:test-" . "$buyut" . "</br>",5);
?>
我已经尝试了#34;数组方法&#34;但它不起作用。谢谢..
在将str_repeat更改为for循环之后,您可以看到循环对于echo行也不起作用;
<?php
function generateRandomString($length = 16) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
//16 hanelik kodu buyutuyorum
$uret = generateRandomString();
$buyut = strtoupper($uret);
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo "1:test-" . "$buyut" . "</br>";
}
?>
答案 0 :(得分:0)
<?php
function rand_str($len, $norepeat = true)
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$max = strlen($chars) - 1;
if ($norepeat && $len > $max + 1) {
throw new Exception("Non repetitive random string can't be longer than charset");
}
$rand_chars = array();
while ($len) {
$picked = $chars[mt_rand(0, $max)];
if ($norepeat) {
if (!array_key_exists($picked, $rand_chars)) {
$rand_chars[$picked] = true;
$len--;
}
}
else {
$rand_chars[] = $picked;
$len--;
}
}
return implode('', $norepeat ? array_keys($rand_chars) : $rand_chars);
}
$i = 10;
foreach(range(1,5) as $i) {
$uretec = rand_str(16);
$buyut = strtoupper($uretec);
echo "1:test-" . "$buyut" . "</br>";
}
?>