php如何生成随机字符串

254 阅读1分钟

在写图形验证码的时候我们的验证码都是随机的,有字符串的、有数字的和结合的,下面对应三种分别对应的算法 当然除了验证码之外,密码加密或者其他的算法中都有可能用到,所以作为基础方法不得不会

/*
     *  生成随机字符串
     *
     *   $length    字符串长度
     */
    function random_str($length,$type=1) {
		if($type==1){
			
        // 密码字符集,可任意添加你需要的字符
        	$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
		}else if($type==2){
			$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
		}else if($type==3){
			$chars = '0123456789';
		}
        $str = '';
        for($i = 0; $i < $length; $i++)
        {
            // 这里提供两种字符获取方式
            // 第一种是使用 substr 截取$chars中的任意一位字符;
            // 第二种是取字符数组 $chars 的任意元素
            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
//            $str .= $chars[mt_rand(0, strlen($chars) - 1)];
        }
        return $str;
    }