PHPがランダムな文字列を生成する方法

1036 ワード

/**
 *        
 * @param number $length          
 * @param number $type          : 0         ,1     ,2     ,3      ,4   ,5        ,6        
 * @return string | int
 */
function getRandString($length = 12, $type = 0) {
    $lower  = range('a', 'z');
    $upper  = range('A', 'Z');
    $number = range(0, 9);

    if($type == 0) {
        $chars = array_merge($lower, $upper, $number);
    } elseif($type == 1) {
        $chars = $lower;
    } elseif($type == 2) {
        $chars = $upper;
    } elseif($type == 3) {
        $chars = array_merge($lower, $upper);
    } elseif($type == 4) {
        $chars = $number;
    } elseif($type == 5) {
        $chars = array_merge($lower, $number);
    } elseif($type == 6) {
        $chars = array_merge($upper, $number);
    }

    shuffle($chars);
    $char_keys  = array_rand($chars, $length);
    shuffle($char_keys);

    $rand = '';
    foreach($char_keys as $key) {
        $rand .= $chars[$key];
    }
    return $rand;
}