Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中创建随机估计字符串_Php - Fatal编程技术网

在php中创建随机估计字符串

在php中创建随机估计字符串,php,Php,我需要通过php随机创建一个类似于此的自动递增字符串。绳子是这样的。因此,我需要的是随机生成的数字和字母的混合,不必是顺序的,只要它是随机的,比如823N9823,最多有8个字符使用: echo generateRandomName(); 功能: function generateRandomName($length=8,$level=2){ list($usec, $sec) = explode(' ', microtime()); srand((float) $sec + (

我需要通过php随机创建一个类似于此的自动递增字符串。绳子是这样的。因此,我需要的是随机生成的数字和字母的混合,不必是顺序的,只要它是随机的,比如823N9823,最多有8个字符使用:

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:虽然这是“随机”的,但你会遇到的碰撞次数甚至都不好笑。此外,它还将包含不需要的字符