PHP генерирует уникальную строку - PullRequest
4 голосов
/ 28 июня 2011

У меня есть столбец идентификатора в таблице, в котором хранится номер идентификатора строки (автоинкремент), например, 1, 2, 3. Я хочу создать случайную и уникальную строку, которая может содержать только цифры, буквы и тире (-) и подчеркивание (_).Длина строки должна быть 4-6, и она должна быть уникальной.Может кто-нибудь помочь мне, как генерировать?спасибо.

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Используйте это - base_convert (mt_rand (0x1D39D3E06400000, 0x41C21CB8E0FFFFFF), 10, 36), но проверьте новое значение по отношению к дб.

0 голосов
/ 28 июня 2011

Попробуйте это

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

Вызовите функцию нужной длины

0 голосов
/ 28 июня 2011
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

Над функцией генерируется уникальная строка

...