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 相关文章推荐
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
php is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
一篇有意思的技术文章php介绍篇
Oct 26 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php中实现精确设置session过期时间的方法
Jul 17 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
学习PHP Cookie处理函数
Aug 09 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 PHP
php桥接模式应用案例分析
Oct 23 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
隐性调用php程序的方法
2009/03/09 PHP
第六章 php目录与文件操作
2011/12/30 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
JS随机密码生成算法
2019/09/23 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
Python实现的弹球小游戏示例
2017/08/01 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
python自动化之Ansible的安装教程
2019/06/13 Python
WxPython实现无边框界面
2019/11/18 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
python with语句的原理与用法详解
2020/03/30 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
高中毕业的自我鉴定
2013/12/09 职场文书
煤矿班组长的职责
2013/12/25 职场文书
委托协议书范本
2014/04/22 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
小学语文国培研修日志
2015/11/13 职场文书
MySQL批量更新不同表中的数据
2022/05/11 MySQL