PHP生成随机数,字符串
程序员文章站
2022-05-22 13:22:26
...
function rand_string($len = 6, $type = '', $addChars = '') {
$str = '';
switch ($type) {
case 0 :
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' . $addChars;
break;
case 1 :
$chars = str_repeat ( '0123456789', 3 );
break;
case 2 :
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . $addChars;
break;
case 3 :
$chars = 'abcdefghijklmnopqrstuvwxyz' . $addChars;
break;
default :
// 默认去掉了容易混淆的字符oOLl和数字01,要添加请使用addChars参数
$chars = 'ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789' . $addChars;
break;
}
if ($len > 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 $str .= msubstr ( $chars, floor ( mt_rand ( 0, mb_strlen ( $chars, 'utf-8' ) - 1 ) ), 1 );
}
}
return $str;
}
$str = '';
switch ($type) {
case 0 :
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' . $addChars;
break;
case 1 :
$chars = str_repeat ( '0123456789', 3 );
break;
case 2 :
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . $addChars;
break;
case 3 :
$chars = 'abcdefghijklmnopqrstuvwxyz' . $addChars;
break;
default :
// 默认去掉了容易混淆的字符oOLl和数字01,要添加请使用addChars参数
$chars = 'ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789' . $addChars;
break;
}
if ($len > 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 $str .= msubstr ( $chars, floor ( mt_rand ( 0, mb_strlen ( $chars, 'utf-8' ) - 1 ) ), 1 );
}
}
return $str;
}
摘自 lpdx111的专栏