Advertisement
Guest User

random string php

a guest
Mar 28th, 2011
1,322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.45 KB | None | 0 0
  1. function random_string($length, $chartypes) {
  2. $chartypes_array=explode(",", $chartypes);
  3. // задаем строки символов
  4. $lower = 'abcdefghijklmnopqrstuvwxyz'; // lowercase
  5. $upper = 'abcdefghijklmnopqrstuvwxyz'; // uppercase
  6. $numbers = '1234567890'; // numbers
  7. $special = '^@*+-+%()!?'; //special characters
  8.  
  9. // определяем символы, из которых будет сгенерирована наша строка
  10. if(in_array('all', $chartypes_array))
  11.     $chars = $lower.$upper.$numbers.$special;
  12. else
  13. {
  14.     if(in_array('lower', $chartypes_array))
  15.         $chars = $lower;
  16.     if(in_array('upper', $chartypes_array))
  17.         $chars .= $upper;
  18.     if(in_array('numbers', $chartypes_array))
  19.         $chars .= $numbers;
  20.     if(in_array('special', $chartypes_array))
  21.         $chars .= $special;
  22. }
  23.  
  24. // длина строки с символами
  25. $chars_length = (strlen($chars) - 1);
  26. // создаем нашу строку
  27. $string = $chars{rand(0, $chars_length)};
  28. // генерируем нашу строку
  29. for ($i = 1; $i < $length; $i = strlen($string))
  30. {
  31. // выбираем случайный элемент из строки с допустимыми символами
  32. $random = $chars{rand(0, $chars_length)};
  33. // убеждаемся в том, что два символа не будут идти подряд
  34. if ($random != $string{$i - 1}) $string .= $random;
  35. }
  36. // возвращаем результат
  37. return $string;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement