在php中创建随机估计字符串
我需要通过php随机创建一个类似于此的自动递增字符串。绳子是这样的。因此,我需要的是随机生成的数字和字母的混合,不必是顺序的,只要它是随机的,比如823N9823,最多有8个字符使用:在php中创建随机估计字符串,php,Php,我需要通过php随机创建一个类似于此的自动递增字符串。绳子是这样的。因此,我需要的是随机生成的数字和字母的混合,不必是顺序的,只要它是随机的,比如823N9823,最多有8个字符使用: echo generateRandomName(); 功能: function generateRandomName($length=8,$level=2){ list($usec, $sec) = explode(' ', microtime()); srand((float) $sec + (
echo generateRandomName();
功能:
function generateRandomName($length=8,$level=2){
list($usec, $sec) = explode(' ', microtime());
srand((float) $sec + ((float) $usec * 100000));
$validchars[1] = "0123456789abcdfghjkmnpqrstvwxyz";
$validchars[2] = "0123456789abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$validchars[3] = "0123456789_!@#$%&*()-=+/abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_!@#$%&*()-=+/";
$password = "";
$counter = 0;
while ($counter < $length) {
$actChar = substr($validchars[$level], rand(0, strlen($validchars[$level])-1), 1);
// All character must be different
if (!strstr($password, $actChar)) {
$password .= $actChar;
$counter++;
}
}
return $password;
}
函数生成器域名($length=8,$level=2){
列表($usec,$sec)=爆炸('',微时间());
srand((浮动)$sec+((浮动)$usec*100000));
$validchars[1]=“0123456789abcdfghjkmnpqrstvwxyz”;
$validchars[2]=“0123456789ABCDFGHJKMNPCQRSTVWXYZABCDFGHIJKLMNOPQRSTVWXYZ”;
$validchars[3]=“0123456789$%&*()-=+/abcdfghjkmnpqrstvwxyzabcdefghijklmnopqrstvwxyz!@$%&*()-=+/”;
$password=“”;
$counter=0;
而($counter<$length){
$actChar=substr($validchars[$level]),rand(0,strlen($validchars[$level])-1);
//所有的角色都必须是不同的
如果(!strstr($password,$actChar)){
$password.=$actChar;
$counter++;
}
}
返回$password;
}
发现
级别要使用的字符级别,3具有特殊字符,如$validchars[3]
所具有的字符
您还可以将其称为:generateRandomName(5)
以生成长度为5
的名称用法:
echo generateRandomName();
function generateRandomString($length=8, $characters='abcdefghijklmnopqrstuvwxyz0123456789'){
$str = '';
$len = strlen($characters);
for($i=0; $i<length; $i++){
$str .= $characters[mt_rand(0, $len)];
}
return $string;
}
功能:
function generateRandomName($length=8,$level=2){
list($usec, $sec) = explode(' ', microtime());
srand((float) $sec + ((float) $usec * 100000));
$validchars[1] = "0123456789abcdfghjkmnpqrstvwxyz";
$validchars[2] = "0123456789abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$validchars[3] = "0123456789_!@#$%&*()-=+/abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_!@#$%&*()-=+/";
$password = "";
$counter = 0;
while ($counter < $length) {
$actChar = substr($validchars[$level], rand(0, strlen($validchars[$level])-1), 1);
// All character must be different
if (!strstr($password, $actChar)) {
$password .= $actChar;
$counter++;
}
}
return $password;
}
函数生成器域名($length=8,$level=2){
列表($usec,$sec)=爆炸('',微时间());
srand((浮动)$sec+((浮动)$usec*100000));
$validchars[1]=“0123456789abcdfghjkmnpqrstvwxyz”;
$validchars[2]=“0123456789ABCDFGHJKMNPCQRSTVWXYZABCDFGHIJKLMNOPQRSTVWXYZ”;
$validchars[3]=“0123456789$%&*()-=+/abcdfghjkmnpqrstvwxyzabcdefghijklmnopqrstvwxyz!@$%&*()-=+/”;
$password=“”;
$counter=0;
而($counter<$length){
$actChar=substr($validchars[$level]),rand(0,strlen($validchars[$level])-1);
//所有的角色都必须是不同的
如果(!strstr($password,$actChar)){
$password.=$actChar;
$counter++;
}
}
返回$password;
}
发现
级别要使用的字符级别,3具有特殊字符,如$validchars[3]
所具有的字符
您还可以将其称为:generateRandomName(5)
要生成长度为5
的名称,您可以使用它生成一个随机整数,然后将值转换为字符串。下面的函数将为您提供2 821 109 907 456
可能的值
function generateRandomString($length=8, $characters='abcdefghijklmnopqrstuvwxyz0123456789'){
$str = '';
$len = strlen($characters);
for($i=0; $i<length; $i++){
$str .= $characters[mt_rand(0, $len)];
}
return $string;
}
function random_id($length = 8) {
$validChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$rndString = '';
for($i = 0; $i < $length; $i++) {
$rndString .= $validChars[mt_rand(0, strlen($validChars) - 1)];
}
return $rndString;
}
$lengthEight = random_id();
$lengthTen = random_id(10);
函数随机id($length=8){
$validChars='0123456789abcdefghijklmnopqrstuvxyz';
$rndString='';
对于($i=0;$i<$length;$i++){
$rndString.=$validChars[mt_rand(0,strlen($validChars)-1)];
}
返回$rndString;
}
$lengthEight=random_id();
$lengthTen=随机id(10);
因为在可能的字符列表中有更多的字母和数字,所以通常会得到一个字母多于数字的字符串
如果要将结果偏向数字多于字母的字符串,则可以使用以下方法:
function skewed_random_id($numericFactor = 0.8, $length = 8) {
$validAlpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$validNumeric = '0123456789';
$rndString = '';
for($i = 0; $i < $length; $i++) {
if((mt_rand() / mt_getrandmax()) < $numericFactor) {
$rndString .= $validNumeric[mt_rand(0, strlen($validNumeric) - 1)];
} else {
$rndString .= $validAlpha[mt_rand(0, strlen($validAlpha) - 1)];
}
}
return $rndString;
}
$eightyPercentNumeric = skewed_random_id();
$fiftyFifty = skewed_random_id(0.5);
$allAlpha = skewed_random_id(0);
$allNumeric = skewed_random_id(1);
函数倾斜随机id($numericFactor=0.8,$length=8){
$validAlpha='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$validNumeric='0123456789';
$rndString='';
对于($i=0;$i<$length;$i++){
如果((mt_rand()/mt_getrandmax())<$numericFactor){
$rndString.=$validNumeric[mt_rand(0,strlen($validNumeric)-1)];
}否则{
$rndString.=$validAlpha[mt_rand(0,strlen($validAlpha)-1)];
}
}
返回$rndString;
}
$eightyPercentNumeric=歪斜的随机id();
$fiftyevon=歪斜的随机id(0.5);
$allAlpha=歪斜的随机id(0);
$allNumeric=歪斜的随机id(1);
您可以使用生成随机整数,然后将值转换为字符串。下面的函数将为您提供2 821 109 907 456
可能的值
function random_id($length = 8) {
$validChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$rndString = '';
for($i = 0; $i < $length; $i++) {
$rndString .= $validChars[mt_rand(0, strlen($validChars) - 1)];
}
return $rndString;
}
$lengthEight = random_id();
$lengthTen = random_id(10);
函数随机id($length=8){
$validChars='0123456789abcdefghijklmnopqrstuvxyz';
$rndString='';
对于($i=0;$i<$length;$i++){
$rndString.=$validChars[mt_rand(0,strlen($validChars)-1)];
}
返回$rndString;
}
$lengthEight=random_id();
$lengthTen=随机id(10);
因为在可能的字符列表中有更多的字母和数字,所以通常会得到一个字母多于数字的字符串
如果要将结果偏向数字多于字母的字符串,则可以使用以下方法:
function skewed_random_id($numericFactor = 0.8, $length = 8) {
$validAlpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$validNumeric = '0123456789';
$rndString = '';
for($i = 0; $i < $length; $i++) {
if((mt_rand() / mt_getrandmax()) < $numericFactor) {
$rndString .= $validNumeric[mt_rand(0, strlen($validNumeric) - 1)];
} else {
$rndString .= $validAlpha[mt_rand(0, strlen($validAlpha) - 1)];
}
}
return $rndString;
}
$eightyPercentNumeric = skewed_random_id();
$fiftyFifty = skewed_random_id(0.5);
$allAlpha = skewed_random_id(0);
$allNumeric = skewed_random_id(1);
函数倾斜随机id($numericFactor=0.8,$length=8){
$validAlpha='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$validNumeric='0123456789';
$rndString='';
对于($i=0;$i<$length;$i++){
如果((mt_rand()/mt_getrandmax())<$numericFactor){
$rndString.=$validNumeric[mt_rand(0,strlen($validNumeric)-1)];
}否则{
$rndString.=$validAlpha[mt_rand(0,strlen($validAlpha)-1)];
}
}
返回$rndString;
}
$eightyPercentNumeric=歪斜的随机id();
$fiftyevon=歪斜的随机id(0.5);
$allAlpha=歪斜的随机id(0);
$allNumeric=歪斜的随机id(1);
如果字符不需要唯一:
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
$randomString = '';
$numofChars = strlen($chars);
while (--$length) {
$randomString .= $chars[mt_rand(0, $numofChars - 1)];
}
return $randomString;
}
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
return substr(str_shuffle($chars), 0, 8);
}
如果字符必须是唯一的:
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
$randomString = '';
$numofChars = strlen($chars);
while (--$length) {
$randomString .= $chars[mt_rand(0, $numofChars - 1)];
}
return $randomString;
}
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
return substr(str_shuffle($chars), 0, 8);
}
如果字符不需要是唯一的:
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
$randomString = '';
$numofChars = strlen($chars);
while (--$length) {
$randomString .= $chars[mt_rand(0, $numofChars - 1)];
}
return $randomString;
}
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
return substr(str_shuffle($chars), 0, 8);
}
如果字符必须是唯一的:
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
$randomString = '';
$numofChars = strlen($chars);
while (--$length) {
$randomString .= $chars[mt_rand(0, $numofChars - 1)];
}
return $randomString;
}
function randomString($length = 8, $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
return substr(str_shuffle($chars), 0, 8);
}
样本输出:
LTeQpy9p
v11oy9R7
TjdkXZru
lh3TvNi4
X5Ca0ZXS
L01RfhxW
QDfwNnGO
您可以使用strtoupper
和strtolower
获得适合您需要的版本
编辑: 如果你想用它来做一些重要的事情,而不仅仅是想要一个随机字符串,那么把
uniqid()
改成mt\u rand()
:
样本输出:
LTeQpy9p
v11oy9R7
TjdkXZru
lh3TvNi4
X5Ca0ZXS
L01RfhxW
QDfwNnGO
您可以使用strtoupper
和strtolower
获得适合您需要的版本
编辑: 如果你想用它来做一些重要的事情,而不仅仅是想要一个随机字符串,那么把
uniqid()
改成mt\u rand()
:
-1:虽然这是“随机”的,但你会遇到的碰撞次数甚至都不好笑。此外,它还将包含不需要的字符