유

(수정)숫자형태의 시리얼 만들기

아래 댓글에 올린것은 제가 착각한 부분이 있어서 다시 올립니다.
백만건 테스트 거쳣으며 중복 발생하지 않습니다.
 
//지정된 자릿수의 랜덤한 숫자를 반환합니다. 최대 10까지 가능합니다. 4 이면 1000 에서 9999 사이의 랜덤 숫자
function get_rand_number($len=4) {

    if (empty($len) || !is_int($len)) $len = 4;
    else if ($len < 0) $len = abs($len);
    if ($len > 10) $len = 10;

    return rand(bcpow(10, $len - 1), bcadd(bcpow(10, $len), -1));
}

//지정된 자릿수의 숫자로된 시리얼을 반환합니다. - 를 포함하고 싶지 않을때는 $cut 이 $len 보다 크거나 같으면 됩니다.
function get_serial($len=16, $cut=4, $hipen='-'){

    if (empty($len) || !is_int($len)) $len = 16;
    else if ($len < 0) $len = abs($len);

    if (empty($cut) || !is_int($cut)) $cut = 4;
    else if ($cut < 0) $cut = abs($cut);

    list($usec, $sec) = explode(' ', microtime());

    $serial = str_replace('.', '', (string)bcmul(bcmul((float)$usec * 10000000 , (float)$sec) , get_rand_number(4)));
    $serial_length = strlen($serial);
    $sub = $len - $serial_length;

    if ($sub > 0) $serial .= (string)get_rand_number($sub);
    else if ($sub < 0) $serial = substr($serial, 0, $len);

    return preg_replace("`([0-9]{" . $cut . "})`", "$1" . $hipen, $serial, floor($len / $cut) - 1);
}

|

댓글 9개

참고로
get_rand_number(4) 를 곱하는 이유는
제일 앞자리가 랜덤으로 나오게 하기 위함입니다.
아직 할건 아니고 말로만 오가는 건이 하나 있어서 혼자 가끔 고민하고 있었는데 바로 일들어 가도 되겠네요. 감사합니다.
네에 도움이 되셧으면 합니다.
감사합니다. 너무 고생하셨네요 ^^ 추천날리고 갑니다 ㅎㅎ
네에 감사합니다.
유창화님 글에 자동으로 추천하는 함수는 없나요?
과찬이십니다.
우오 멋집니다!
저는 보통 대충 만들어서 중복검사 해버리고 마는데..
꼼꼼하십니다!!
고맙습니다. 아침부터 힘이 나네요
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-04-06 조회 2,924
12-04-06 조회 3,152
12-04-05 조회 3,574
12-04-05 조회 2,965
12-04-05 조회 4,606
12-04-05 조회 3,261
12-04-05 조회 3,937
12-04-04 조회 4,244
12-04-04 조회 3,894
12-04-03 조회 3,221
12-04-03 조회 3,815
12-04-03 조회 3,110
12-04-03 조회 2,830
12-04-02 조회 3,534
12-04-02 조회 3,247
12-04-01 조회 3,180
12-04-01 조회 3,036
12-04-01 조회 3,236
12-03-31 조회 3,099
12-03-31 조회 3,561
12-03-30 조회 3,177
12-03-30 조회 2,836
12-03-30 조회 3,492
12-03-30 조회 3,153
12-03-30 조회 3,840
12-03-30 조회 3,300
12-03-29 조회 6,040
12-03-29 조회 3,860
12-03-29 조회 4,585
12-03-29 조회 3,058
12-03-28 조회 2,670
12-03-28 조회 3,379
12-03-28 조회 4,302
12-03-28 조회 3,086
12-03-27 조회 4,582
12-03-27 조회 3,010
12-03-27 조회 3,395
12-03-26 조회 4,084
12-03-26 조회 3,461
12-03-26 조회 3,028
12-03-26 조회 3,777
12-03-26 조회 6,140
12-03-25 조회 2,715
12-03-25 조회 2,874
12-03-24 조회 2,944
12-03-24 조회 6,412
12-03-24 조회 3,582
12-03-24 조회 3,831
12-03-23 조회 3,782
12-03-23 조회 2,962
12-03-23 조회 2,832
12-03-23 조회 2,975
12-03-22 조회 3,812
12-03-22 조회 3,219
12-03-22 조회 3,478
12-03-22 조회 4,665
12-03-22 조회 3,180
12-03-22 조회 3,657
12-03-22 조회 3,550
12-03-22 조회 2,829
12-03-22 조회 5,715
12-03-22 조회 3,471
12-03-22 조회 5,020
12-03-21 조회 3,250
12-03-21 조회 3,036
12-03-21 조회 3,123
12-03-21 조회 2,822
12-03-21 조회 3,506
12-03-21 조회 3,496
12-03-21 조회 4,854
12-03-21 조회 6,417
12-03-21 조회 2,813
12-03-20 조회 5,603
12-03-20 조회 2,790
12-03-20 조회 3,302
12-03-20 조회 3,033
12-03-20 조회 3,304
12-03-20 조회 4,074
12-03-19 조회 3,528
12-03-19 조회 2,773
12-03-19 조회 3,452
12-03-18 조회 3,155
12-03-17 조회 3,480
12-03-17 조회 4,054
12-03-17 조회 3,294
12-03-16 조회 2,924
12-03-16 조회 4,070
12-03-16 조회 3,322
12-03-15 조회 2,930
12-03-15 조회 3,002
12-03-15 조회 3,323
12-03-15 조회 2,727
12-03-14 조회 3,949
12-03-14 조회 3,210
12-03-14 조회 3,262
12-03-14 조회 2,912
12-03-13 조회 3,561
12-03-13 조회 4,425
12-03-13 조회 2,786
12-03-13 조회 2,698