此文章发布于43个月前,部分信息可能已经过时,请自行斟酌确认
PHP生成随机字符串
- 关联知识:
php生成随机字符串的函数有rand
和mt_rand
。
经测试函数 mt_rand
比函数 rand
快将近4倍,且前者的随机性也比后者要高。
今天给大家分享一段代码,这是我在做项目时为了方便调用自己想要的随机字符串而在公共文件中写的一个方法体。
适用于生成各种随机编号、验证码,等各种需要随机字符串的需求。
if (!function_exists('random_string')) {
/**
* 生成随机字串
* @param integer $len [description]
* @param integer $type [description]
* @return string [description]
*/
function random_string($len = 6, $type = 1) {
switch ($type) {
case 1:
$codeSet = '0123456789';
break;
case 2:
$codeSet = 'abcdefhijkmnpqrstuvwxyz';
break;
case 3:
$codeSet = '2345678abcdefhijkmnpqrstuvwxyz';
break;
case 4:
$codeSet = 'abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY';
break;
default:
$codeSet = '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY';
break;
}
return substr(str_shuffle(str_repeat($codeSet, $len)), 0, $len);
}
}
在项目中当我需要随机字符串时我会调用公共文件中的 random_string
函数,此函数可传$len
和$type
两个值,$len
代表了需要随机字符串的位数,默认为6位,$type
代表了所需的随机字符串的类型。
如下为$type
的各个数字值所代表的类型(默认为1):
- 1: 数字类型。
- 2: 小写英文字母类型。
- 3: 数字+小写英文字母混合类型。
- 4: 大写英文+小写英文的混合类型。
- 除上述数字外,其他任意数字均代表的是:数字+大写英文+小写英文的混合类型。
如果大家对代码有任何疑问或者认为有可以优化的地方,欢迎大家在留言中写下来,我会积极回复的。
最后修改:2020 年 02 月 26 日 02 : 36 AM
© 允许规范转载
安全快递单号网 安全空包代发网站www.5adanhao.cn