PHP开发小技巧④—两种方法实现获取随机字符串

来源:互联网 发布:人工智能结局 编辑:程序博客网 时间:2024/05/11 01:52

        获取随机字符串的方法很多,只要自己的算法设计的比较好,就可以很方便快速的得到自己想要的结果。获取随机字符串在我们的日常工作编程中也用到的很多,例如:登录时要输入的验证码,发送手机短信验证的验证码,以及在我们生成订单的时候为了防止订单号码重复,我们会在固有的单号之后再加上一串随机字符串,增加其号码不会重复的保障,等等。其实只要是对编程有了解的人都知道,没有什么真正的随机,所有的都能找到其规律,只是难以与否的问题,这个就不多说了。

        我这里研究写了两个生成随机字符串的方法,各有其优缺点,主要是与大家共同学习进步,如果有好的意见建议,欢迎留言提出。下面的就不多说了,代码比较简单,主要的是提供一种思路或是方法,大家可以直接读代码:

    <?php    /**     * =======================================     * Created by Zhihua_W.     * Author: Zhihua_W     * Date: 2016/12/1 0004     * Time: 下午 5:15     * Project: PHP开发小技巧     * Power: 两种方法实现获取随机字符串     * =======================================     */    /**     * 方法一:获取随机字符串     * @param number $length 长度     * @param string $type 类型     * @param number $convert 转换大小写     * @return string 随机字符串     */    function random($length = 6, $type = 'string', $convert = 0)    {        $config = array(            'number' => '1234567890',            'letter' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',            'string' => 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789',            'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'        );        if (!isset($config[$type]))            $type = 'string';        $string = $config[$type];        $code = '';        $strlen = strlen($string) - 1;        for ($i = 0; $i < $length; $i++) {            $code .= $string{mt_rand(0, $strlen)};        }        if (!empty($convert)) {            $code = ($convert > 0) ? strtoupper($code) : strtolower($code);        }        return $code;    }    /**     * 方法二:获取随机字符串     * @param int $randLength 长度     * @param int $addtime 是否加入当前时间戳     * @param int $includenumber 是否包含数字     * @return string     */    function rand_str($randLength = 6, $addtime = 1, $includenumber = 0)    {        if ($includenumber) {            $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789';        } else {            $chars = 'abcdefghijklmnopqrstuvwxyz';        }        $len = strlen($chars);        $randStr = '';        for ($i = 0; $i < $randLength; $i++) {            $randStr .= $chars[rand(0, $len - 1)];        }        $tokenvalue = $randStr;        if ($addtime) {            $tokenvalue = $randStr . time();        }        return $tokenvalue;    }        //其中也可以放多个参数    //random(4,'number');    //random(6,'letter',1);    echo random(10);    //方法二同样    echo rand_str(6);    ?>

        关于打印结果在这里就不再贴上来了,比较简单。

0 0
原创粉丝点击