具體分析如下:
這是一個簡單的函數(shù),沒有對生成的內(nèi)容作強(qiáng)制設(shè)定。所以在生成的字符串長度較少的時候,會出現(xiàn)沒有指定類型字符的情況。當(dāng)然,修改起來也很簡單,這里就不做添加了。
/**
* @param string $type
* @param $length
* @return string
*/
function randomString($type="number,upper,lower",$length){
$valid_type = array('number','upper','lower');
$case = explode(",",$type);
$count = count($case);
//根據(jù)交集判斷參數(shù)是否合法
if($count !== count(array_intersect($case,$valid_type))){
return false;
}
$lower = "abcdefghijklmnopqrstuvwxyz";
$upper = strtoupper($lower);
$number = "0123456789";
$str_list = "";
for($i=0;$i<$count;++$i){
$str_list .= $$case[$i];
}
return substr(str_shuffle($str_list),0,$length);
}
echo randomString("number,upper,lower",12);
更多信息請查看IT技術(shù)專欄