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 相关文章推荐
文件上传的实现
Oct 09 PHP
php堆排序(heapsort)练习
Nov 13 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
Zend Framework创建自己的动作助手详解
Mar 05 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
php实现的表单验证类完整示例
Aug 13 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
禁止直接访问php文件代码分享
May 05 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.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
python如何爬取网页中的文字
2020/07/28 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
用python制作个音乐下载器
2021/01/30 Python
初中生评语大全
2014/04/24 职场文书
党员承诺践诺书
2014/05/20 职场文书
聘任证明怎么写
2015/03/02 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python