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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
一个PHP分页类的代码
May 18 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
Jun 30 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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
星际流派综述
2020/03/04 星际争霸
php session_decode函数用法讲解
2019/05/26 PHP
newxtree.js代码
2007/03/13 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
vue 2.0封装model组件的方法
2017/08/03 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
python处理csv数据的方法
2015/03/11 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python设置环境变量的作用和实例
2019/07/09 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
大学生未来职业生涯规划书
2014/02/15 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
文员求职信
2014/07/15 职场文书
信访工作汇报材料
2014/10/27 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
团日活动总结格式
2015/05/11 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript