11.22随笔

  就业班开班到今天已经第七天了,几乎每天都是概念,其实这些知识都不是很难,但就是多,要多看记住或者留下印象。其中我觉得最麻烦的就是PHP的自动转换,因为PHP的自动转换经常发生,所以有些业务逻辑需要判断的时候经常会出错,就在今晚的考试里,就出现了一种。所以我截了图做了桌面,让自己记得。

在做一个简单的验证码生成器的时候,虽然有辅导员给的函数,但自己反而另外想到了一种方法:

<?php
//以下方法会提高数字的获得概率,并改进了array_rand()parameter 2 不为 1 时候的随机性下降 
function security(){
	static $j = 1;
	$arr = array(1,'o','O','l','L','i','I');
	for($i = $j;$i <= 4;$i++,$j++){
		$num1 = mt_rand(49,57);				//获得数字
		$num2 = mt_rand(65,90);				//获得大写字母
		$num3 = mt_rand(97,122);			//获得小写字母
		$number = "num";					//可变变量
		$res = $number.mt_rand(1,3);		//输出字符串的变量名
		foreach($arr as $value){			//遍历核对
			if(chr($$res) == $value){
				security();		//遇到特殊字符则递归交给下次调用的函数处理,本次函数调用则return
				return;
			}
		}
		printf("%c",$$res);					//没有特殊字符则是正常输出
	}
}

security();

  

原文地址:https://www.cnblogs.com/trustme326/p/6091474.html