php 获取一串随机字符串,php获取随机字符串的几种方法

方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍)

/**

* 获得随机字符串

* @param $len 需要的长度

* @param $special 是否需要特殊符号

* @return string 返回随机字符串

*/

function getRandomStr($len, $special=true){

$chars = 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"

);

if($special){

$chars = array_merge($chars, array(

"!", "@", "#", "$", "?", "|", "{", "/", ":", ";",

"%", "^", "&", "*", "(", ")", "-", "_", "[", "]",

"}", "", "~", "+", "=", ",", "."

));

}

$charsLen = count($chars) - 1;

shuffle($chars); //打乱数组顺序

$str = '';

for($i=0; $i

$str .= $chars[mt_rand(0, $charsLen)]; //随机取出一位

}

return $str;

}

方法二、str_shuffle函数(打乱字符串顺序)和mt_rand函数

//取随机10位字符串

$strs="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm";

$name=substr(str_shuffle($strs),mt_rand(0,strlen($strs)-11),10);

echo $name;

方法三、md5(),uniqid(),microtime()生成唯一的32位字符串

$uniqid = md5(uniqid(microtime(true),true));

//microtime(true) 返回系统当前时间戳的毫秒数

其他方法:

/**

* 方法一:获取随机字符串

* @param number $length 长度

* @param string $type 类型

* @param number $convert 转换大小写

* @return string 随机字符串

*/

function random($length = 6, $type = 'string', $convert = 0)

{

$config = array(

'number' => '1234567890',

'letter' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',

'string' => 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789',

'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'

);

if (!isset($config[$type]))

$type = 'string';

$string = $config[$type];

$code = '';

$strlen = strlen($string) - 1;

for ($i = 0; $i < $length; $i++) {

$code .= $string{mt_rand(0, $strlen)};

}

if (!empty($convert)) {

$code = ($convert > 0) ? strtoupper($code) : strtolower($code);

}

return $code;

}

/**

* 方法二:获取随机字符串

* @param int $randLength 长度

* @param int $addtime 是否加入当前时间戳

* @param int $includenumber 是否包含数字

* @return string

*/

function rand_str($randLength = 6, $addtime = 1, $includenumber = 0)

{

if ($includenumber) {

$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789';

} else {

$chars = 'abcdefghijklmnopqrstuvwxyz';

}

$len = strlen($chars);

$randStr = '';

for ($i = 0; $i < $randLength; $i++) {

$randStr .= $chars[mt_rand(0, $len - 1)];

}

$tokenvalue = $randStr;

if ($addtime) {

$tokenvalue = $randStr . time();

}

return $tokenvalue;

}

PHP获取随机字符串的两种方法

mysql获取随机字符串和随机数的方法

在我们开发的过程中,我们可能会需要在表中随机生成一些数据以供我们进行相应的测试. 就像我之前发的“mysql创建存储过程向数据表中加入规定条数的数据” 那么我们应该怎样生成随机的字符串和随机数字呢? ...

Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...

通过PID获取进程路径的几种方法

通过PID获取进程路径的几种方法 想获得进程可执行文件的路径最常用的方法是通过GetModuleFileNameEx函数获得可执行文件的模块路径这个函数从Windows NT 4.0开始到现在的Vis ...

go golang 判断base64数据 获取随机字符串 截取字符串

go golang 判断base64数据 获取随机字符串 截取字符串 先少写点,占个坑,以后接着加. 1,获取指定长度随机字符串 func RandomDigits(length int) strin ...

JS实现随机颜色的3种方法与颜色格式的转化

JS实现随机颜色的3种方法与颜色格式的转化   随机颜色和颜色格式是我们在开发中经常要用到的一个小功能,网上相关的资料也很多,想着有必要总结一下自己的经验.所以这篇文章主要介绍了JS实现随机颜色的3种 ...

windows下获取IP地址的两种方法

windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

PHP获取POST数据的几种方法汇总

一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...

Oracle中获取执行计划的几种方法分析

以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下     1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...

随机推荐

django上传图片

django修改头像的功能... 1.在表单中加入enctype="multipart/form-data: 关于表单中enctype的介绍:http://www.w3school.com. ...

把本地仓库工程上传到github上和从gitbu同步工程到本地

1.在本地产生秘钥和公钥 [root@jacky git_project]# ssh-keygen -t rsa -C "jacky-lulu@1073740572@qq.com" ...

【leetcode】Decode Ways&lpar;medium&rpar;

A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

Android DatePickerDialog 只选择年月

//对EditText注册OnTouch事件etSscxNssbDate.setOnTouchListener(selectDateTouchListener); //选择日期 private OnT ...

ContentProvider中的数据库的生成时机以及ContentResolver的insert&lpar;&rpar;方法总结

经过几天的总结,以及结合一些代码的实际测试,终于算是明白了ContentProvider中的数据的生成时机了. 目录结构: MainActivity.java package com.wyl.cont ...

删除github上面的项目

1.进入github 2.点击Repositories,看到你所有的repository 3.点击进入你想要删除的repository,点击settings 4.在options选项中,下拉到底看到“ ...

Flask---第二个例子--Get和POST发送

*get:浏览器告诉服务器,我只需要获取页面信息给我,这是最简单最常用的方法 *Post:览器告诉服务器:想在 URL 上 发布 新信息.并且,服务器必须确保 数据已存储且仅存储一次.这是 HTML ...

python基础介绍

一. 1.计算机基础 cpu:运算和控制:速度:飞机 内存:临时存储,供给cup数据,断电数据清空.成本高,速度:高铁 硬盘:相当于电脑的数据库,存储大量数据,数据永久保存(除非物理结构被破坏).速度 ...

Linux下使用rsync最快速删除海量文件的方法

常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长.所以必须要采取一些非常手段.我们可以使用rsync来实现快速删除大量文件. 1.先安装rsync:  yum install rsyn ...

Winform生成安装程序时配置自启动

1.右击安装编辑程序,在“视图”菜单中,选择“注册表”. 2.创建“键”:HKCU\Software\Microsoft\Windows\CurrentVersion\Run 3.右键Run,新建“字 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值