웹/php

php 랜덤 문자열 숫자 생성 함수

몽키 D.루피 2016. 7. 14. 09:05


function get_random_string($len = 10, $type '') {
    $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 />';