sub_title
 PHP
제   목 PHP 난수를 이용한 쿠폰번호 생성하기
작성자 웹마당넷 등록일 2009-03-16 01:56:58 조회수 21,821

PHP 난수를 이용한 쿠폰번호 생성하기

php에서 난수를 구하기 위해서는 srand() 함수와 rand() 함수가 사용됩니다. srand()함수는 직접 난수를 생성하는 함수가 아니라 rand()함수가 제대로 된 난수를 생성하도록 난수값을 초기화하는 함수로 srand() 함수를 생략하였을 경우에는 계속해서 일정한 모양의, 난수답지 않은 난수가 생성되는 것을 본적이 있으실 겁니다.
rand() 함수는 인자로 받은 min과 max사이의 값중 임의의 정수를 반환합니다.

int rand([int min], [int max])

※ php4.2 버전부터는 srand()함수로 난수값을 초기화 할 필요가 없이 자동으로 초기화 됩니다.

아래는 "ASP에서 난수를 이용한 쿠폰번호 생성 예제"를 php 문법으로 바꾼 예제로 예제의 설명은 asp와 크게 다르지
않기 때문에 아래 링크클릭 후 확인하시는 것으로 대체하겠습니다.

ASP에서 난수를 이용한 쿠폰번호 생성 보러가기



배열을 이용한 방법(시간이 널널한 분들에게 권장)

<?php


   $couponArray = array(
                                 0=>"A",1=>"B",2=>"C",3=>"D",4=>"E",
                                 5=>"F",6=>"G",7=>"H",8=>"I",9=>"J",
                                10=>"K",11=>"L",12=>"M",13=>"N",14=>"O",
                                15=>"P",16=>"Q",17=>"R",18=>"S",19=>"T",
                                20=>"U",21=>"V",22=>"W",23=>"X",24=>"Y",
                                25=>"Z",26=>"0",27=>"1",28=>"2",29=>"3",
                                30=>"4",31=>"5",32=>"6",33=>"7",34=>"8",
                                35=>"9"
                                );

    srand((double)microtime()*1000000); //난수값 초기화

    for($i=0;$i<16;$i++){
          $randNo = rand(0,35); //0과 35사이의 난수를 구한다
          $resultStr .= $couponArray[$randNo];
     }

    echo$resultStr;
?>



함수를 이용한 방법

<?php

   $couponNo = getCoupon(16);
   echo$couponNo;

function getCoupon($couponLength, $couponString=""){

    $defaultString = "ABCDEFGHIJKLMNOPQRSTUVXYZ0123456789";
    srand((double)microtime()*1000000);

    if ( $couponString == "" ){ //$couponString의 값이 정해지지 않았다면 $defaultString 값으로 사용
           $couponString = $defaultString;
    }

   $length = strlen($couponString);

   for($i=0;$i<$couponLength;$i++)
  {
     $couponStr = rand(0,$length-1); //0에서 $defaultString또는 $couponString의 길이사이의 난수를 구한다
     $resultStr .= substr( $couponString, $couponStr, 1 );
   }

  return $resultStr;
}

?>



작성자: 웹마당넷(webmadang@webmadang.net)   http://www.webmadang.net
 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
80  gcm 푸시 알림 php 테스트    member 오렌지 0 / 0 14053 2018-05-26
79  fcm 푸시 알림 php 테스트   member 오렌지 1 / 0 12519 2018-05-12
78  PHP header를 UTF-8로 설정하기   member 오렌지 5 / 0 37218 2017-04-10
77  PHP 특정 아이피 차단   member 높이뜬새 1 / 0 5878 2016-11-02
76  가장 마지막에 insert 된 auto_increment 값 가져오기   member 높이뜬새 1 / 0 9123 2016-01-23
75  php 요일 구하기 이미지   member 높이뜬새 0 / 0 7090 2015-10-15
74  PHP 메일함수로 두명이상에게 메일전송하기   member 높이뜬새 1 / 0 6968 2015-07-09
73  PHP ftp를 이용한 파일 업로드 및 파일 삭제하기   admin 웹마당넷 2 / 0 16636 2015-06-29
72  PHP 에서 MySQL 데이터베이스 사용량 출력해보기   admin 웹마당넷 1 / 0 6021 2015-06-26
71  PHP fsockopen 함수를 이용해서 특정 페이지 읽어오기   admin 웹마당넷 1 / 0 6876 2015-06-26
70  PHP 특정 아이피 차단   admin 웹마당넷 5 / 0 7685 2015-06-26
69  PHP 모바일 기기 체크   admin 웹마당넷 1 / 0 7462 2015-06-26
68  PHP에서 euc-kr, utf-8 인코딩 캐릭터셋 변경하기   admin 웹마당넷 2 / 0 19257 2015-06-26
67  PHP rand() 함수를 이용해서 페이지 랜덤하게 불러오기   admin 웹마당넷 2 / 1 14794 2015-06-26
66  PHP 파일확장자 구하기   member 오렌지 2 / 0 27514 2010-01-23
65  PHP 특정 디렉토리에 있는 파일 갯수 구하기   member 높이뜬새 2 / 0 12433 2010-01-19
64  PHP 선택된 다수(여러개)의 체크박스 값 넘기기   admin 웹마당넷 2 / 0 25518 2009-06-12
63  PHP - 년도를 표시해 주는 셀렉트박스(SELECT BOX)   member 오렌지 2 / 0 19949 2009-05-04
62  PHP - 정규식을 이용한 IP주소 유효성 체크   member 오렌지 1 / 0 12803 2009-03-30
61  PHP - POST 방식의 파일 업로드 다루기   member 오렌지 1 / 1 24721 2009-03-26
60  PHP 난수를 이용한 쿠폰번호 생성하기   admin 웹마당넷 0 / 0 21821 2009-03-16
59  PHP $HTTP_COOKIE_VARS로 값이 안 넘어올때   member 높이뜬새 0 / 0 11670 2009-03-12
58  PHP 문자열의 길이를 같게 만들기   admin 웹마당넷 0 / 0 11094 2009-03-11
57  PHP 간단한 파일 업로드(upload) 예제   member 높이뜬새 0 / 0 17848 2009-03-10
56  PHP 파일 1바이트씩 읽기(fgetc함수)   admin 웹마당넷 0 / 0 8538 2009-03-07
write
[2] [3] [4] button