php获取随机字符串的几种方法
方法一: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获取随机字符串的几种方法相关推荐
- php 获取一串随机字符串,php获取随机字符串的几种方法
方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍) /** * 获得随机字符串 * @param $len 需要的长度 * @param $special ...
- PHP获取随机字符串的两种方法
1 <?php 2 /** 3 * 随机返回字符串 4 * @param number 返回字符串长度 5 * @param string 从哪些字符串中随机返回,已设置默认字符串,可空 6 * ...
- c#产生随机字符串的两种方法
// c#产生随机字符串的两种方法 using System; using System.Data; using System.Linq; using System.Windows.Forms;nam ...
- 产生随机字符java_java生成随机字符串的两种方法
本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...
- php 包含字母随机数_php生成随机数 生成随机字符串的5种方法
有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成. 第一种:mt_rand() function GetRandStr($length){ //字符组合 $str ...
- java取子串_Java中获取子字符串的几种方法示例
首先假如有这样一串字符串: String s = "共 100 页, 1 2 3 4..."; 假如我想把"100"给取出来,该如何做? 方法一: 采用spli ...
- java 获取随机数字的三种方法
1 //方法1 (数据类型) 2 //(最小值+Math.random()*(最大值-最小值+1)) 3 // 例: 4 (int)(1+Math.random()*(10-1+1)) //从1到10 ...
- java 取随机整数_Java获取随机整数的两种方法
方式一: 使用 Random 类 举例:获取 0~3 范围内(包括 0 和 3 )的 int 类型的随机数 Random random = new Random(); System.out.print ...
- shell实例第2讲:获取随机字符串
获取随机字符串常用三种方法: 方法一: echo $RANDOM |md5sum |cut -c 1-8 说明: (1)RANDOM会产生随机数,经过md5sum,再通过cut截取第一位到第八位的字符 ...
最新文章
- 可信工业数据空间系统架构1.0白皮书
- 用c实现跨平台异常捕获机制
- 时间字段 oracle 经验 设计,数据库设计与优化
- composer 小技巧
- 涂鸦智能 dubbo-go 亿级流量的实践与探索
- java机试_java机试要点
- bat小工具_字节跳动收购效率工具幕布,张一鸣的 To B 野心 | 36氪独家
- .NET的可调信号量
- 大家为什么去国企后都不想跳槽了?
- kafka练习:创建topic以及生产与消费
- nginx proxy_pass cannot have URI part in location given by regular expression
- WP布局难题,由三个升级为四个
- 广度优先搜索nodeHDU/HDOJ 1242 Rescue 典型的迷宫广度优先搜索题
- 车轮轨迹原理_倒车轮子原理是什么 倒车原理动画演示很有用
- Electron IPC(进程间通信)之ipcMain和ipcRenderer
- [转]被历史歪曲得最多的皇帝--隋炀帝杨广简介
- 【量子机器学习】HHL算法: Quantum algorithm for solving linear systems of equations
- 【ionic框架bug】slideBox在使用model或pop后width变为0的解决方案
- thinkpadE430c加装固态硬盘小记
- 国际化进程加速,上海树图区块链研究院联合创始人伍鸣博士受邀访问香港科技园...
热门文章
- import numpy as np_纪录27个NumPy操作
- 集群节点数和分片数关系_完全二叉树的节点数,你真的会算吗?
- mysql导入csvnull,MySQL Workbench从CSV导入NULL
- 王爽汇编第二册:将每个单词的前四位改为大写字母
- 高仿国美在线底部代码实现
- 第二届高校大数据比赛之鼠标轨迹识别
- 《剑指offer》二叉树的下一个节点
- python解决https私密连接警告信息
- eclipse上安装hadoop后报错 Error:org.hadoop.security.AccessControlException:Permission
- 将String转化为Long,并将Long转化为Date