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 相关文章推荐
PHP音乐采集(部分代码)
Feb 14 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
PHP中数组的三种排序方法分享
May 07 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
Linux下 php7安装redis的方法
Nov 01 PHP
laravel 自定义常量的两种方案
Oct 14 PHP
YII2 全局异常处理深入讲解
Mar 24 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 @ at 记号的作用示例介绍
2014/10/10 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
最短的IE判断代码
2011/03/13 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
python 图片去噪的方法示例
2019/07/09 Python
python计算二维矩形IOU实例
2020/01/18 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
openCV提取图像中的矩形区域
2020/07/21 Python
详解python UDP 编程
2020/08/24 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
学习委员自我鉴定
2014/01/13 职场文书
婚前财产公证书
2014/04/10 职场文书
学校搬迁方案
2014/06/15 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
会议营销主持词
2015/07/03 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python