• 技术文章 >后端开发 >php教程

    PHP开发技巧(四)-获取随机字符串两种实现方法详解

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

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

    <?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);  
      
    ?>

    以上就是PHP开发技巧(四)-获取随机字符串两种实现方法详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP开发技巧(三)-多维数组转化为一维数组的代码详解 下一篇:PHP开发技巧(五)-递归删除文件夹实现的代码案例
    PHP编程就业班

    相关文章推荐

    • PHP高并发实例详解之解决商品库存超卖问题• 带你聊聊PHP中的泛型之基础知识浅析• 十天学会php之第三天_php基础• 再点一次Active的名,我把你的函数功能扩充了一下,嘻嘻,现在能_PHP• 基于php实现七牛抓取远程图片_php实例

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网