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序列号生成函数和字符串替换函数代码
Jun 07 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
基于MySQL体系结构的分析
May 02 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
php实现加减法验证码代码
Feb 14 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
php实现算术验证码功能
Dec 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
PL-880隐藏功能
2021/03/01 无线电
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
python实现定时同步本机与北京时间的方法
2015/03/24 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
什么是岗位职责
2013/11/12 职场文书
大学四年个人自我小结
2014/03/05 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
安全生产月演讲稿
2014/05/09 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
见习期个人总结
2015/03/05 职场文书
村党组织公开承诺书
2015/04/30 职场文书
入党自传范文2015
2015/06/26 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
Python安装使用Scrapy框架
2022/04/12 Python
ubuntu下常用apt命令介绍
2022/06/05 Servers