메뉴 건너뛰기

프로그램언어

2018.10.27 03:30

PHP 랜덤 문자열 생성

조회 수 4121 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
코딩시 가끔 무작위문자열이 필요할때가 있는데 시스템이나 내장함수에서 제공하는 방식은 원하는 기준으로 맞추기가 번거롭다.
단순 비교만 사용되는 토큰이나 인증코드 등은 기본난수를 해시화해서 다루면 되지만 암호찾기 등으로 변경된 암호를 사용자에게 알릴 필요가 있을때에는 상황에 따라 정돈된 무작위문자열이 필요한 경우가 있다.

랜덤문자를 원하는 조합으로 원하는 길이만큼 생성할 수 있도록 만들어 보았다.


function get_random_string($type = '', $len = 10) {

    $lowercase = 'abcdefghijklmnopqrstuvwxyz';

    $uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    $numeric = '0123456789';

    $special = '`~!@#$%^&*()-_=+\\|[{]};:\'",<.>/?';

    $key = '';

    $token = '';

    if ($type == '') {

        $key = $lowercase.$uppercase.$numeric;

    } else {

        if (strpos($type,'09') > -1) $key .= $numeric;

        if (strpos($type,'az') > -1) $key .= $lowercase;

        if (strpos($type,'AZ') > -1) $key .= $uppercase;

        if (strpos($type,'$') > -1) $key .= $special;

    }

    for ($i = 0; $i < $len; $i++) {

        $token .= $key[mt_rand(0, strlen($key) - 1)];

    }

    return $token;

}




//사용예


echo '기본 : ' . get_random_string() . '<br />';

echo '숫자만 : ' . get_random_string('09') . '<br />';

echo '숫자만 30글자 : ' . get_random_string('09', 30) . '<br />';

echo '소문자만 : ' . get_random_string('az') . '<br />';

echo '대문자만 : ' . get_random_string('AZ') . '<br />';

echo '소문자+대문자 : ' . get_random_string('azAZ') . '<br />';

echo '소문자+숫자 : ' . get_random_string('az09') . '<br />';

echo '대문자+숫자 : ' . get_random_string('AZ09') . '<br />';

echo '소문자+대문자+숫자 : ' . get_random_string('azAZ09') . '<br />';

echo '특수문자만 : ' . get_random_string('$') . '<br />';

echo '숫자+특수문자 : ' . get_random_string('09$') . '<br />';

echo '소문자+특수문자 : ' . get_random_string('az$') . '<br />';

echo '대문자+특수문자 : ' . get_random_string('AZ$') . '<br />';

echo '소문자+대문자+특수문자 : ' . get_random_string('azAZ$') . '<br />';

echo '소문자+대문자+숫자+특수문자 : ' . get_random_string('azAZ09$') . '<br />';


  1. No Image 06Mar
    by
    2017/03/06 Views 18306 

    PHP 속도 테스트 20 가지

  2. No Image 27Oct
    by
    2018/10/27 Views 3502 

    PHP 소켓을 이용하여 URL의 응답결과를 문자열로 받기

  3. No Image 19Jul
    by
    2018/07/19 Views 6648 

    PHP 소스코드 인코딩(암호화)하기

  4. No Image 26Mar
    by
    2014/03/26 Views 20707 

    PHP 소스 : 이미지 리사이즈, 섬네일

  5. No Image 26Mar
    by
    2014/03/26 Views 19490 

    PHP 세션에서 시작, 변수등록, 변수삭제, 부수기

  6. No Image 07Mar
    by
    2017/03/07 Views 26325 

    php 세션 유지시간 늘리기

  7. PHP 삼항연산자 ?

  8. No Image 12Jan
    by
    2023/01/12 Views 253 

    PHP 브라우저 알아내기

  9. No Image 14Apr
    by
    2015/04/14 Views 26589 

    PHP 변수전달 GET, POST

  10. No Image 31Dec
    by
    2019/12/31 Views 644 

    PHP 버전이 낮아 imagerotate() 함수가 없을때 대신 사용하는 함수

  11. No Image 07Feb
    by
    2024/02/07 Views 71 

    PHP 버전 숨기기 ( php version hide )

  12. No Image 27Oct
    by
    2018/10/27 Views 3539 

    PHP 문자열에서 검색어를 기준으로 앞뒤로 일정 길이만큼 자르기

  13. No Image 06Mar
    by
    2017/03/06 Views 15580 

    php 문자열관련 함수

  14. No Image 06Mar
    by
    2017/03/06 Views 17063 

    PHP 만년달력 소스

  15. No Image 12Apr
    by
    2014/04/12 Views 22664 

    PHP 로그인후 현재 페이지로 돌아오기 처리

  16. No Image 27Oct
    by
    2018/10/27 Views 4764 

    PHP 랜덤확률 구하기

  17. No Image 27Oct
    by 조쉬
    2018/10/27 Views 4121 

    PHP 랜덤 문자열 생성

  18. No Image 12Jan
    by
    2023/01/12 Views 233 

    PHP 디렉토리안에 파일 리스트 가져오기

  19. No Image 12Jan
    by
    2023/01/12 Views 178 

    php 두날짜 사이의 모든날짜 배열 만들기

  20. No Image 06Mar
    by
    2017/03/06 Views 17589 

    PHP 도메인 이름이나 웹문서 주소 알아내기

Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved