function regcode_generate in Registration codes 7
Same name and namespace in other branches
- 8 regcode.module \regcode_generate()
- 6.2 regcode.module \regcode_generate()
- 7.2 regcode.module \regcode_generate()
Generate a code.
1 call to regcode_generate()
- regcode_admin_create_submit in ./regcode.admin.php 
- Process creation form.
File
- ./regcode.module, line 624 
- Main functionality and hooks of regcode module.
Code
function regcode_generate($length, $output, $case) {
  static $seeded = FALSE;
  // Possible seeds.
  $outputs['alpha'] = 'abcdefghijklmnopqrstuvwqyz';
  $outputs['numeric'] = '0123456789';
  $outputs['alphanum'] = 'abcdefghijklmnopqrstuvwqyz0123456789';
  $outputs['hexadec'] = '0123456789abcdef';
  // Choose seed.
  if (isset($outputs[$output])) {
    $output = $outputs[$output];
  }
  // Seed generator (only do this once per invocation).
  if (!$seeded) {
    list($usec, $sec) = explode(' ', microtime());
    $seed = (double) $sec + (double) $usec * 100000;
    mt_srand($seed);
    $seeded = TRUE;
  }
  // Generate.
  $str = '';
  $output_count = strlen($output);
  for ($i = 0; $length > $i; $i++) {
    $str .= $output[mt_rand(0, $output_count - 1)];
  }
  if ($case) {
    $str = strtoupper($str);
  }
  return $str;
}