PHP生成随机字符串

此文章发布于43个月前,部分信息可能已经过时,请自行斟酌确认

PHP生成随机字符串

  • 关联知识:
    php生成随机字符串的函数有 randmt_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
如果觉得我的文章对你有用,请随意赞赏

1 条评论

  1. zhhb

    安全快递单号网 安全空包代发网站www.5adanhao.cn

发表评论