天天看点

php 生成不重复的随机数, 随机字符串

/**
 * 生成不重复的随机数
 * @param  int $start  需要生成的数字开始范围
 * @param  int $end    结束范围
 * @param  int $length 需要生成的随机数个数
 * @return array       生成的随机数
 */
public static function get_rand_number($start = 1,$end = 10,$length = 4){
    $connt=0;
    $temp=array();
    while($connt<$length){
        $temp[]=mt_rand($start,$end);
        $data=array_unique($temp);
        $connt=count($data);
    }
    sort($data);
    return $data;
}
           
/**
 * 生成随机字符串
 * @param int $length
 * @return string
 */
public static function getRandomStr($length = 10) {

    //$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
    $password = '';
    for($i = 0; $i < $length; $i++){
        //这里提供两种字符获取方式
        //第一种是使用 substr 截取$chars中的任意一位字符;
        //第二种是取字符数组 $chars 的任意元素
        //$password .= substr($chars, mt_rand(0, strlen($chars) – 1), 1);
        $password .= $chars[mt_rand(0, strlen($chars) - 1)];
    }
    return $password;
}