0

我正在创建一个用于学习目的的票证系统,我想知道如何创建一个与此类似的简单的唯一票证 ID:gD8f-jxS

第一部分将有 4 个随机大小写字符

(允许使用字母和数字,然后它会有一个破折号,然后是 3 个任意大小写的随机字母或数字。

4

1 回答 1

5
public function generateCode(){

    $unique =   FALSE;
    $length =   7;
    $chrDb  =   array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');

    while (!$unique){

          $str = '';
          for ($count = 0; $count < $length; $count++){

              $chr = $chrDb[rand(0,count($chrDb)-1)];

              if (rand(0,1) == 0){
                 $chr = strtolower($chr);
              }
              if (3 == $count){
                 $str .= '-';
              }
              $str .= $chr;
          }

          /* check if unique */
          //$existingCode = UNIQUE CHECK GOES HERE  
          if (!$existingCode){
             $unique = TRUE;
          }
    }
    return $str;
}
于 2012-05-20T23:01:47.727 回答