PHP开发小技巧④—两种方法实现获取随机字符串
来源:互联网 发布:软件可靠性定义 编辑:程序博客网 时间:2024/05/21 04:17
获取随机字符串的方法很多,只要自己的算法设计的比较好,就可以很方便快速的得到自己想要的结果。获取随机字符串在我们的日常工作编程中也用到的很多,例如:登录时要输入的验证码,发送手机短信验证的验证码,以及在我们生成订单的时候为了防止订单号码重复,我们会在固有的单号之后再加上一串随机字符串,增加其号码不会重复的保障,等等。其实只要是对编程有了解的人都知道,没有什么真正的随机,所有的都能找到其规律,只是难以与否的问题,这个就不多说了。
我这里研究写了两个生成随机字符串的方法,各有其优缺点,主要是与大家共同学习进步,如果有好的意见建议,欢迎留言提出。下面的就不多说了,代码比较简单,主要的是提供一种思路或是方法,大家可以直接读代码:
- <?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
- PHP开发小技巧④—两种方法实现获取随机字符串
- PHP开发小技巧④—两种方法实现获取随机字符串
- PHP开发小技巧⑩—实现中文字符串截取无乱码的方法
- 【Java】获取随机字符串的两种方法
- PHP开发小技巧①⑤—实现文件下载
- PHP开发程序:生成随机字符串的方法
- Qt如何上传zip文件(两种形式),及随机生成规定长度的字符串的小方法
- PHP生成随机字符串方法
- 【Android开发技巧】Fragment中获取Context对象的两种方法
- PHP开发小技巧①⑥—提取富文本字符串中的文本内容
- PHP开发小技巧①①—php实现手机号码显示部分
- PHP开发小技巧①⑦—PHP实现跨域
- PHP开发小技巧⑦—获取中文字符的拼音首字母
- PHP开发小技巧⑨—获取url中的各个参数
- PHP开发小技巧⑨—获取url中的各个参数
- PHP开发小技巧⑤—实现实现递归删除文件夹
- 两种方法实现---字符串倒叙
- 实现字符串对换的两种方法
- ViewPagerIndicator库的使用
- 如何使用yum命令安装 tomcat ?
- Android Notification自定义通知样式你要知道的事
- HDU-5876 & SCU-4444 (完全图的最短路)
- 维吉尼亚密码加密过程图解及其破译方法
- PHP开发小技巧④—两种方法实现获取随机字符串
- JS生成 UUID的方法
- boost库的安装与使用
- linux send与recv函数详解------内附代码
- spring配置文件xsd报错的解决方法
- JAVA
- 算法第4版(谢路云译)学习笔记(4) -- 二分法查找算法的分析解释
- 互联网、因特网、万维网、局域网、广域网的区别
- 第五章 初始化与清理