php生成随机数/生成随机字符串的方法小结【5种方法】


Posted in PHP onMay 27, 2020

本文实例讲述了php生成随机数/生成随机字符串的方法。分享给大家供大家参考,具体如下:

有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成。

第一种:mt_rand()

<?php
function GetRandStr($length){
 //字符组合
 $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
 $len = strlen($str)-1;
 $randstr = '';
 for ($i=0;$i<$length;$i++) {
  $num=mt_rand(0,$len);
  $randstr .= $str[$num];
 }
 return $randstr;
}

//传入长度
$number = GetRandStr(6);
echo $number;
?>

第二种:array_rand()数组

<?php
function make_password($length)
{
 // 密码字符集,可任意添加你需要的字符
 $str = 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');
 // 在 $str 中随机取 $length 个数组元素键名
 $keys = array_rand($str, $length); 
 $password = '';
 for($i = 0; $i < $length; $i++)
 {
  // 将 $length 个数组元素连接成字符串
  $password .= $str[$keys[$i]];
 }
 return $password;
}
echo make_password(6);
?>

第三种:把字符串打乱,然后返回其中的一小截

<?php
function getrandstr($length){
 $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
 $randStr = str_shuffle($str);//打乱字符串
 $rands= substr($randStr,0,$length);//substr(string,start,length);返回字符串的一部分
 return $rands;
}
echo getrandstr(6);
?>

第四种:返回任意随机数

<?php
//返回1000-9999其中的一个随机数
echo rand(1000,9999);
?>

第五种:对时间戳进行MD5加密,截取其中一部分

<?php
function token($length){
 $str = md5(time());
 $token = substr($str,5,$length);
 return $token;
}
echo token(6);
?>

5种方法,任你选择,当然还有很多方法,例如多个字符串进行拼接,最后做md5加密或SHA1加密,然后返回字符串,这种比较普遍用于token验证或签名验证。

PHP 相关文章推荐
使用 MySQL 开始 PHP 会话
Dec 21 PHP
php 禁止页面缓存输出
Jan 07 PHP
PHP自定义函数收代码
Aug 01 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
php获取新浪微博数据API实例
Nov 12 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
PHP微信模板消息操作示例
Jun 29 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 PHP
php+mysql实现的无限分类方法类定义与使用示例
May 27 #PHP
php与阿里云短信接口接入操作案例分析
May 27 #PHP
PHP开发API接口签名生成及验证操作示例
May 27 #PHP
php+websocket 实现的聊天室功能详解
May 27 #PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 #PHP
PHP code 验证码生成类定义和简单使用示例
May 27 #PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 #PHP
You might like
PHP高级OOP技术演示
2009/08/27 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
python基础教程之面向对象的一些概念
2014/08/29 Python
Python基于DES算法加密解密实例
2015/06/03 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
护士个人简历自荐信
2013/10/18 职场文书
中学生运动会入场词
2014/02/12 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript