方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍)

 1 /**
 2  * 获得随机字符串
 3  * @param $len             需要的长度
 4  * @param $special        是否需要特殊符号
 5  * @return string       返回随机字符串
 6  */
 7 function getRandomStr($len, $special=true){
 8     $chars = array(
 9         "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
10         "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
11         "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
12         "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
13         "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
14         "3", "4", "5", "6", "7", "8", "9"
15     );
16
17     if($special){
18         $chars = array_merge($chars, array(
19             "!", "@", "#", "$", "?", "|", "{", "/", ":", ";",
20             "%", "^", "&", "*", "(", ")", "-", "_", "[", "]",
21             "}", "<", ">", "~", "+", "=", ",", "."
22         ));
23     }
24
25     $charsLen = count($chars) - 1;
26     shuffle($chars);                            //打乱数组顺序
27     $str = '';
28     for($i=0; $i<$len; $i++){
29         $str .= $chars[mt_rand(0, $charsLen)];    //随机取出一位
30     }
31     return $str;
32 }

方法二、str_shuffle函数(打乱字符串顺序)和mt_rand函数

1 //取随机10位字符串
2 $strs="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";
3 $name=substr(str_shuffle($strs),mt_rand(0,strlen($strs)-11),10);
4 echo $name;

方法三、md5(),uniqid(),microtime()生成唯一的32位字符串

$uniqid = md5(uniqid(microtime(true),true));
//microtime(true)  返回系统当前时间戳的毫秒数

其他方法:

 1 /**
 2      * 方法一:获取随机字符串
 3      * @param number $length 长度
 4      * @param string $type 类型
 5      * @param number $convert 转换大小写
 6      * @return string 随机字符串
 7      */
 8     function random($length = 6, $type = 'string', $convert = 0)
 9     {
10         $config = array(
11             'number' => '1234567890',
12             'letter' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
13             'string' => 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789',
14             'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
15         );
16
17         if (!isset($config[$type]))
18             $type = 'string';
19         $string = $config[$type];
20
21         $code = '';
22         $strlen = strlen($string) - 1;
23         for ($i = 0; $i < $length; $i++) {
24             $code .= $string{mt_rand(0, $strlen)};
25         }
26         if (!empty($convert)) {
27             $code = ($convert > 0) ? strtoupper($code) : strtolower($code);
28         }
29         return $code;
30     }
31
32     /**
33      * 方法二:获取随机字符串
34      * @param int $randLength 长度
35      * @param int $addtime 是否加入当前时间戳
36      * @param int $includenumber 是否包含数字
37      * @return string
38      */
39     function rand_str($randLength = 6, $addtime = 1, $includenumber = 0)
40     {
41         if ($includenumber) {
42             $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789';
43         } else {
44             $chars = 'abcdefghijklmnopqrstuvwxyz';
45         }
46         $len = strlen($chars);
47         $randStr = '';
48         for ($i = 0; $i < $randLength; $i++) {
49             $randStr .= $chars[mt_rand(0, $len - 1)];
50         }
51         $tokenvalue = $randStr;
52         if ($addtime) {
53             $tokenvalue = $randStr . time();
54         }
55         return $tokenvalue;
56     }

转载于:https://www.cnblogs.com/myIvan/p/9533189.html

php获取随机字符串的几种方法相关推荐

  1. php 获取一串随机字符串,php获取随机字符串的几种方法

    方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍) /** * 获得随机字符串 * @param $len 需要的长度 * @param $special ...

  2. PHP获取随机字符串的两种方法

    1 <?php 2 /** 3 * 随机返回字符串 4 * @param number 返回字符串长度 5 * @param string 从哪些字符串中随机返回,已设置默认字符串,可空 6 * ...

  3. c#产生随机字符串的两种方法

    // c#产生随机字符串的两种方法 using System; using System.Data; using System.Linq; using System.Windows.Forms;nam ...

  4. 产生随机字符java_java生成随机字符串的两种方法

    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...

  5. php 包含字母随机数_php生成随机数 生成随机字符串的5种方法

    有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成. 第一种:mt_rand() function GetRandStr($length){ //字符组合 $str ...

  6. java取子串_Java中获取子字符串的几种方法示例

    首先假如有这样一串字符串: String s = "共 100 页, 1 2 3 4..."; 假如我想把"100"给取出来,该如何做? 方法一: 采用spli ...

  7. java 获取随机数字的三种方法

    1 //方法1 (数据类型) 2 //(最小值+Math.random()*(最大值-最小值+1)) 3 // 例: 4 (int)(1+Math.random()*(10-1+1)) //从1到10 ...

  8. java 取随机整数_Java获取随机整数的两种方法

    方式一: 使用 Random 类 举例:获取 0~3 范围内(包括 0 和 3 )的 int 类型的随机数 Random random = new Random(); System.out.print ...

  9. shell实例第2讲:获取随机字符串

    获取随机字符串常用三种方法: 方法一: echo $RANDOM |md5sum |cut -c 1-8 说明: (1)RANDOM会产生随机数,经过md5sum,再通过cut截取第一位到第八位的字符 ...

最新文章

  1. 可信工业数据空间系统架构1.0白皮书
  2. 用c实现跨平台异常捕获机制
  3. 时间字段 oracle 经验 设计,数据库设计与优化
  4. composer 小技巧
  5. 涂鸦智能 dubbo-go 亿级流量的实践与探索
  6. java机试_java机试要点
  7. bat小工具_字节跳动收购效率工具幕布,张一鸣的 To B 野心 | 36氪独家
  8. .NET的可调信号量
  9. 大家为什么去国企后都不想跳槽了?
  10. kafka练习:创建topic以及生产与消费
  11. nginx proxy_pass cannot have URI part in location given by regular expression
  12. WP布局难题,由三个升级为四个
  13. 广度优先搜索nodeHDU/HDOJ 1242 Rescue 典型的迷宫广度优先搜索题
  14. 车轮轨迹原理_倒车轮子原理是什么 倒车原理动画演示很有用
  15. Electron IPC(进程间通信)之ipcMain和ipcRenderer
  16. [转]被历史歪曲得最多的皇帝--隋炀帝杨广简介
  17. 【量子机器学习】HHL算法: Quantum algorithm for solving linear systems of equations
  18. 【ionic框架bug】slideBox在使用model或pop后width变为0的解决方案
  19. thinkpadE430c加装固态硬盘小记
  20. 国际化进程加速,上海树图区块链研究院联合创始人伍鸣博士受邀访问香港科技园...

热门文章

  1. import numpy as np_纪录27个NumPy操作
  2. 集群节点数和分片数关系_完全二叉树的节点数,你真的会算吗?
  3. mysql导入csvnull,MySQL Workbench从CSV导入NULL
  4. 王爽汇编第二册:将每个单词的前四位改为大写字母
  5. 高仿国美在线底部代码实现
  6. 第二届高校大数据比赛之鼠标轨迹识别
  7. 《剑指offer》二叉树的下一个节点
  8. python解决https私密连接警告信息
  9. eclipse上安装hadoop后报错 Error:org.hadoop.security.AccessControlException:Permission
  10. 将String转化为Long,并将Long转化为Date