具體分析如下:
這是一個(gè)簡(jiǎn)單的函數(shù),沒(méi)有對(duì)生成的內(nèi)容作強(qiáng)制設(shè)定。所以在生成的字符串長(zhǎng)度較少的時(shí)候,會(huì)出現(xiàn)沒(méi)有指定類(lèi)型字符的情況。當(dāng)然,修改起來(lái)也很簡(jiǎn)單,這里就不做添加了。
/**
* @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);
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄