php生成随机字符串自定义函数详解
/**
* 生成随机字符串
* @param int $length 要生成的随机字符串长度
* @param string $type 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符
* @return string
*/
function randcode($length = 5, $type = 0) {
$arr = array(1 => 0123456789, 2 => abcdefghijklmnopqrstuvwxyz, 3 => abcdefghijklmnopqrstuvwxyz, 4 => ~@#$%^&*(){}[]|);
if ($type == 0) {
array_pop($arr);
$string = implode(, $arr);
} else if ($type == -1) {
$string = implode(, $arr);
} else {
$string = $arr[$type];
}
$count = strlen($string) - 1;
for ($i = 0; $i 10 ) {//位数过长重复字符串一定次数
$chars= $type==1? str_repeat($chars,$len) : str_repeat($chars,5);
}
if($type!=4) {
$chars = str_shuffle($chars);
$str = substr($chars,0,$len);
}else{
// 中文随机字
for($i=0;$i<$len;$i++){
$str.= msubstr($chars, floor(mt_rand(0,mb_strlen($chars,'utf-8')-1)),1);
}
}
return $str;
}