PHP中生成随机字符串,数字+大小写字母随机组合
简单的生成随机字符串:
- /*
- * 生成随机字符串
- *
- * $length 字符串长度
- */
- function random_str($length) {
- // 密码字符集,可任意添加你需要的字符
- $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
- $str = '';
- for($i = 0; $i < $length; $i++)
- {
- // 这里提供两种字符获取方式
- // 第一种是使用 substr 截取$chars中的任意一位字符;
- // 第二种是取字符数组 $chars 的任意元素
- $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
- // $str .= $chars[mt_rand(0, strlen($chars) - 1)];
- }
- return $str;
- }
了解原理后可以扩展一下:
- /**
- * 生成随机字符串,数字,大小写字母随机组合
- *
- * @param int $length 长度
- * @param int $type 类型,1 纯数字,2 纯小写字母,3 纯大写字母,4 数字和小写字母,5 数字和大写字母,6 大小写字母,7 数字和大小写字母
- */
- function random($length = 6, $type = 1)
- {
- // 取字符集数组
- $number = range(0, 9);
- $lowerLetter = range('a', 'z');
- $upperLetter = range('A', 'Z');
- // 根据type合并字符集
- if ($type == 1) {
- $charset = $number;
- } elseif ($type == 2) {
- $charset = $lowerLetter;
- } elseif ($type == 3) {
- $charset = $upperLetter;
- } elseif ($type == 4) {
- $charset = array_merge($number, $lowerLetter);
- } elseif ($type == 5) {
- $charset = array_merge($number, $upperLetter);
- } elseif ($type == 6) {
- $charset = array_merge($lowerLetter, $upperLetter);
- } elseif ($type == 7) {
- $charset = array_merge($number, $lowerLetter, $upperLetter);
- } else {
- $charset = $number;
- }
- $str = '';
- // 生成字符串
- for ($i = 0; $i < $length; $i++) {
- $str .= $charset[mt_rand(0, count($charset) - 1)];
- // 验证规则
- if ($type == 4 && strlen($str) >= 2) {
- if (!preg_match('/\d+/', $str) || !preg_match('/[a-z]+/', $str)) {
- $str = substr($str, 0, -1);
- $i = $i - 1;
- }
- }
- if ($type == 5 && strlen($str) >= 2) {
- if (!preg_match('/\d+/', $str) || !preg_match('/[A-Z]+/', $str)) {
- $str = substr($str, 0, -1);
- $i = $i - 1;
- }
- }
- if ($type == 6 && strlen($str) >= 2) {
- if (!preg_match('/[a-z]+/', $str) || !preg_match('/[A-Z]+/', $str)) {
- $str = substr($str, 0, -1);
- $i = $i - 1;
- }
- }
- if ($type == 7 && strlen($str) >= 3) {
- if (!preg_match('/\d+/', $str) || !preg_match('/[a-z]+/', $str) || !preg_match('/[A-Z]+/', $str)) {
- $str = substr($str, 0, -2);
- $i = $i - 2;
- }
- }
- }
- return $str;
- }
PHP中生成随机字符串,数字+大小写字母随机组合的更多相关文章
- PHP生成随机字符串包括大小写字母
PHP生成随机字符串包括大小写字母,这里介绍两种方法: 第一种:利用字符串函数操作 <?php /** *@blog <www.phpddt.com> */ function cre ...
- Java生成固定长度的随机字符串(以大小写字母和数字)
package org.jimmy.autosearch2019.test; import java.util.ArrayList; import java.util.Random; /** * @a ...
- Upcase 将edit1中的每个字符串改为首字母大写
//将edit1中的每个字符串改为首字母大写 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin with ...
- 随机总数字里面选取随机数字进行随机排序案例(JAVA实现)
随机总数字里面选取随机数字进行随机排序案例,案例如下: 代码code: package com.sec; import java.util.Arrays; import java.util.Scann ...
- JS生成1000个数字加字母的不重复的随机字符串
周五,快下班了,正收拾东西准备走人,项目经理突然让我给他做个Excel,1000个数字加字母组合的密码,不重复,下班前给. 我直接懵了,Excel不会,估计是要写个什么命令才能生成出来,于是想着有没有 ...
- php---------正则判断字符串中是否由汉字 数字 英文字母组成
开发中常常用到正则表达式,分享两个常用的正则表达式,php检查字符串是否由汉字,数字,英文字母,下划线组成, 注意这里只是针对utf-8字符集的字符串检查. 数字 汉字 英文字母: if (!preg ...
- javascript 字符串 数字反转 字母大小写互换
// 符串abcd123ABCD456 怎么转换为 ABCD321abcd654 // 数字要倒序 小写转大写, 大写转小写 Array.prototype.reverse = function() ...
- 利用PinYin4j 实现List中的对象按数字,字母, 汉字排序
要排序的对象: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPi ...
- php 生成随机字符串,数字,大写字母,小写字母,特殊字符可以随意组合
* 生成随机字符串* @param int $length 要生成的随机字符串长度* @param string $type 随机码类型:0,数字+大小写字母:1,数字:2, ...
随机推荐
- subprocess之check_out用法
在python3中使用subprocess的check_out方法时,因为该输出为byte类型,所以如果要查看具体的内容时需要进行转码,如果转码不对话,会影响内容输出的可读性,如下: #1,输出解码不 ...
- http并发访问模型(2)
目录 http并发 并发访问模型 响应流程 从IO的角度看待响应 从函数的角度看待响应 日志处理 我叫张贺,贪财好色.一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网 ...
- ReactNative: 使用尺寸类Dimensions获取屏幕尺寸
一.简介 在前面创建使用组件时,虽然使用的都是伸缩盒子布局,但是很少使用宽高来进行绝对定位.在iOS中可以通过UIScreen控件获取当前屏幕的宽高,同样地,在RN中提供了一个尺寸组件Dimensio ...
- python的安装以及前景
1.检查软件是否安装:在cmd命令行上输oython 假如环境已经配置好环境变量 则会显示为python的inf: 2.下载并安装python 打开python官网:https://www.pytho ...
- Web安全测试学习笔记-DVWA-SQL注入-1
SQL注入的定义网上很多,作为一个初学者,我对SQL注入的理解是这样的:网站应用一般都有后台数据库(不论是关系型还是非关系型),用户在网站上的绝大部分操作,最终都会跟数据库交互(也就是执行一串SQL语 ...
- IMP-00009: abnormal end of export file解决方案
一.概述 最近在测试环境的一个oracle数据库上面,使用exp将表导出没有问题,而将导出的文件使用imp导入时却出现了如下错误. IMP-00009: abnormal end of export ...
- Excel的创建和读取NPOI
项目中经常用到需要操作Excel文件,例如:导出数据库中的数据,读取数据等.但是电脑又没有安装office,不能直接调用微软的库,最后经过查找,找到这样的一个不用安装office的库.一个.NET库, ...
- Selenium(十):用By定位元素、鼠标事件、键盘事件
1. 用By定位元素 除了前面介绍的单位方法,WebDriver还提供了另外一套写法,即统一调用find_element()方法,通过By来声明定位的方法,并且传入对应定位方法的定位参数.具体如下: ...
- 需要知道的jQuery对象和DOM对象之间的转换
jQuery对象和DOM对象之间的转换 jQuery对象就是通过jQuery包装DOM对象后产生的对象. jQuery对象和DOM对象不能互相调用对方的方法或属性,但它们之间可以进行转换. 两者都无法 ...
- opencv-python 图像基础处理(二)
图像阈值 ret, dst = cv2.threshold(src, thresh, maxval, type) - src: 输入图,只能输入单通道图像,通常来说为灰度图- dst: 输出图- th ...