function get_rand_code( $code_length = 8, $code_mode = '' )
{
if ( is_numeric( $code_length ) && !empty( $code_mode ) )
{
switch( $code_mode ) 
{
case '1':
$str = '1234567890';
break;
case '2':
$str = 'abcdefghijklmnopqrstuvwxyz';
break;
case '3':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case '4':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
break;
case '5':
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
break;
case '6':
$str = 'abcdefghijklmnopqrstuvwxyz1234567890';
break;
default:
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
break;
} $result = '';
$str_length = strlen( $str )-1; for( $i = 0; $i < $code_length; $i++ )
{
$num = mt_rand( 0, $str_length );
$result .= $str[$num];
} return $result;
}
else
{
return false;
}
}

解决方案 »

  1.   

    <?php
    class activeCodeObj
    {    function getCode ($length = 32, $mode = 0)
        {
            switch ($mode) {
                case '1':
                    $str = '1234567890';
                break;
                case '2':
                    $str = 'abcdefghijklmnopqrstuvwxyz';
                break;
                case '3':
                    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                break;
                case '4':
                    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
                break;
                case '5':
                    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
                break;
                case '6':
                    $str = 'abcdefghijklmnopqrstuvwxyz1234567890';
                break;
                default:
                    $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
                break;
            }        $result = '';
            $l = strlen($str);        for($i = 0;$i < $length;$i ++){
                $num = rand(0, $l);
                $result = $result.substr($str,$num,1);
            }
            return $result;
        }
    }$length="";
    $mode="";
    $code="";
    $length = 32;
    $mode = 1; 
    $code = new activeCodeObj;
    echo $code->getCode($length, $mode);
    ?>
      

  2.   

    ...函数是不错,
    但是却不能保证每次所产生的结果(数字或者字符串)不一样...
    比如对get_rand_code(10,1)的两次调用.有可能都返回1234567890
    所以不符合题目的要求吧???还请赐教......
      

  3.   

    function random($length) {
    $hash = '';
    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
    $max = strlen($chars) - 1;
    mt_srand((double)microtime() * 1000000);
    for($i = 0; $i < $length; $i++) {
    $hash .= $chars[mt_rand(0, $max)];
    }
    return $hash;
    }
    //如果你还嫌不够
    echo random(5).date("ymdhis");