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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
简单的页面缓冲技术
Oct 09 PHP
php数据库密码的找回的步骤
Jan 12 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
preg_match_all使用心得分享
Jan 31 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
基于PHP实现等比压缩图片大小
Mar 04 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
php pdo连接数据库操作示例
Nov 18 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
May 02 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
php Undefined index的问题
2009/06/01 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
破解Session cookie的方法
2006/07/28 Javascript
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python实现批量下载图片的方法
2015/07/08 Python
Python用模块pytz来转换时区
2016/08/19 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
Python实现把类当做字典来访问
2019/12/16 Python
python中关于数据类型的学习笔记
2020/07/19 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
中医专业职业生涯规划书范文
2014/01/04 职场文书
安全技术说明书
2014/05/09 职场文书
会计演讲稿范文
2014/05/23 职场文书
销售提升方案
2014/06/07 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
打架检讨书
2015/01/27 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL