<?php
// Set length of the string
$length = 30;
$random = substr(md5(rand()), 0, 15);
// Use for-loop to generate thirty unique alphanumeric strings
For($i=0; $i<$length;) {echo $random.$i++."<br />";
上面的代码生成类似5523d651bfb642b0,5523d651bfb642b1,5523d651bfb642b2,5523d651bfb642b3等的内容。下一个值太容易预测了。我想要一些完全不同的东西,就像我在浏览器中刷新页面一样。如果我删除循环并且只是echo $ random,那么每次刷新页面时页面都会生成一个完全不同的字符串。如何使用循环生成完全不同的东西,如5523d651bfb642b0,2yyd00nngbh201km,78gdfmpqg01597v等?感谢。
答案 0 :(得分:1)
function generateRandomString($length = 30) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
$i = 0;
$times_to_run = 30;
while ($i++ < $times_to_run)
{
generateRandomString();
}
答案 1 :(得分:0)
如果您使用的是PHP 7,则可以轻松生成随机字符串:
$bytes = random_bytes(5); //random. Increase input for more bytes
$code = bin2hex($bytes); // eg: 385e33f741
在PHP 7之前,我将使用函数
生成一个字母数字代码function getRandomString($length){
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
$result = '';
while(strlen($result)<$length) {
$result .= $chars{mt_rand(0,strlen($chars)-1)};
}
return $result;
}
要获得10个字符的随机代码,请致电:
$randomString = getRandomString(10);
您可以为$ chars ofcourse添加更多字符