php获取随机字符串的几种方法
方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍)
/**
* 获得随机字符串
* @param $len 需要的长度
* @param $special 是否需要特殊符号
* @return string 返回随机字符串
*/
function getRandomStr($len, $special=true){
$chars = array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
"3", "4", "5", "6", "7", "8", "9"
);
if($special){
$chars = array_merge($chars, array(
"!", "@", "#", "$", "?", "|", "{", "/", ":", ";",
"%", "^", "&", "*", "(", ")", "-", "_", "[", "]",
"}", "<", ">", "~", "+", "=", ",", "."
));
}
$charsLen = count($chars) - 1;
shuffle($chars); //打乱数组顺序
$str = '';
for($i=0; $i<$len; $i++){
$str .= $chars[mt_rand(0, $charsLen)]; //随机取出一位
}
return $str;
}
方法二:str_shuffle函数(打乱字符串顺序)和mt_rand函数
//取随机10位字符串
$strs="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";
$name=substr(str_shuffle($strs),mt_rand(0,strlen($strs)-11),10);
echo $name;
方法三:md5(),uniqid(),microtime()生成唯一的32位字符串
$uniqid = md5(uniqid(microtime(true),true));
//microtime(true) 返回系统当前时间戳的毫秒数
其他方法:
/**
* 方法一:获取随机字符串
* @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[mt_rand(0, $len - 1)];
}
$tokenvalue = $randStr;
if ($addtime) {
$tokenvalue = $randStr . time();
}
return $tokenvalue;
}
(资源库 www.zyku.net)
上一篇:php中input的onclick,onkeydown、onkeyup、onclick、onchange、oninput、onpropertychange 的用法和区别
栏 目:PHP教程
下一篇:php生成6位不重复的字符串
本文标题:php获取随机字符串的几种方法
本文地址:https://www.zyku.net/php/2245.html
您可能感兴趣的文章
- 01-12kirakira+ app-kirakira+ app应用软
- 10-15华为耳机配对苹果手机教程介绍
- 10-15DedeCMS列表有缩略图则显示缩略图,无
- 03-07ios15设置戴口罩解锁功能方法
- 02-19OPPO Reno6Pro设置返回键方法
- 07-23jquery v1.2.3
- 01-12Time Spirit app-Time Spirit app应用
- 01-09王者投屏-王者投屏应用软件功能介绍
- 01-11天天乌尔都语-天天乌尔都语应用软件功
- 02-14.NET MD5加密解密代码解析
- 01-10芒西Moxie-芒西Moxie应用软件功能介绍
- 11-19sleeptown编辑城镇教程介绍
- 02-28小米手机设置语言步骤教程
- 12-22vivo nex3设置自动锁屏时间方法
- 05-04Vultr教程:在Ubuntu 17.04服务器上安装
- 01-06MIUI13如何开启无障碍功能菜单
- 03-11Yii2 加载css、js 载入静态资源
- 01-03安卓手机安装tasker软件教程与使用方
- 12-25苹果xrNFC功能怎么开启
- 02-27小米11pro快捷键设置教程
最近更新
阅读排行
猜你喜欢
- 05-28HTML中meta的作用
- 01-12完美身体编辑器-完美身体编辑器应用软
- 09-21notability画虚线方法分享
- 03-15iqooneo5活力版设置充电动画教程
- 12-25车辆年检查询-车辆年检查询应用软件功
- 02-10华为nova8隐私空间功能使用教程
- 01-17海豚影视app-海豚影视app应用软件功能
- 12-23iwatch6开启心电图方法介绍
- 03-21vivox60指纹识别动画设置教程
- 04-01OneinStack使用dnsapi获取 Let's Encr