PHP生成一个唯一的字符串

时间:2011-06-28 05:24:57

标签: php string random unique

我在表中有一个ID列,用于存储行ID号(自动增量),例如1,2,3。我想生成一个随机且唯一的字符串,其中只能包含数字,字母和短划线( - )和下划线(_)。字符串的长度应为4-6,并且应该是唯一的。有人可以帮助我如何生成?感谢。

3 个答案:

答案 0 :(得分:2)

使用它 - base_convert(mt_rand(0x1D39D3E06400000,0x41C21CB8E0FFFFFF),10,36),但是检查db的新值。

答案 1 :(得分:0)

function random_gen($length)
{
  $random= "";
  srand((double)microtime()*1000000);
  $char_list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  $char_list .= "abcdefghijklmnopqrstuvwxyz";
  $char_list .= "1234567890-_";
  // Add the special characters to $char_list if needed

  for($i = 0; $i < $length; $i++)
  {
    $random .= substr($char_list,(rand()%(strlen($char_list))), 1);
  }
  return $random;
}

$random_string = random_gen(6); //This will return a random 6 character string

上面的函数将生成唯一的字符串

答案 2 :(得分:0)

试试这个

function genRandomString($length) {
   $characters = ’0123456789abcdefghijklmnopqrstuvwxyz-_’;
   $string = ”;    
   for ($p = 0; $p < $length; $p++) {
      $string .= $characters[mt_rand(0, strlen($characters))];
    }
   return $string;
}

使用您想要的长度调用该函数