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 相关文章推荐
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 PHP
PHP Include文件实例讲解
Feb 15 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
php7 新增功能实例总结
May 25 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 PHP
php中yii框架实例用法
Dec 22 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实现上传图片生成缩略图示例
2014/04/13 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
JavaScript Split()方法
2015/12/18 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
vue实现全选、反选功能
2020/11/17 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
python查找指定具有相同内容文件的方法
2015/06/28 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
光电信息专业应届生求职信
2013/10/07 职场文书
投资意向书范本
2014/04/01 职场文书
难忘的一天教学反思
2014/04/30 职场文书
我的祖国演讲稿
2014/05/04 职场文书
教师考核材料
2014/05/21 职场文书
2014年派出所工作总结
2014/11/21 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL