- /**
- +----------------------------------------------------------
- * 产生随机字串, 可用来自动生成密码,验证码,表单令牌等
- * 默认长度6位 字母和数字混合 支持中文
- +----------------------------------------------------------
- * @param string $len 长度
- * @param string $type 字串类型
- * 0 字母 1 数字 其它 混合
- * @param string $addChars 额外字符
- +----------------------------------------------------------
- * @return string
- +----------------------------------------------------------
- */
- 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 < $len; $i++) {
- $str .= msubstr($chars, floor(mt_rand(0, mb_strlen($chars, 'utf-8') - 1)), 1);
- }
- }
- return $str;
- }
来源: http://www.phpxs.com/code/1003569/