PHP生成随机字符串(字母+数字)

2023-05-16

当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度

function randomkeys($length) 
{ 
   $pattern = '1234567890abcdefghijklmnopqrstuvwxyz 
               ABCDEFGHIJKLOMNOPQRSTUVWXYZ;
    for($i=0;$i<$length;$i++) 
    { 
        $key .= $pattern{mt_rand(0,35)};    //生成php随机数 
    } 
    return $key; 
} 
echo randomkeys(8);


 

另一种用PHP生成随机数的方法:利用chr()函数,省去创建字符池的步骤。

function randomkeys($length){ 
   $output=''; 
   for ($a = 0; $a<$length; $a++) { 
       $output .= chr(mt_rand(33, 126));    //生成php随机数 
    } 
    return $output; 
} 
echo randomkeys(8);


 

在第二个php随机函数里,先用mt_rand()生成一个介于33到126之间的php随机数,然后用chr()函数转化成字符。第二个函数和第一个函数功能相同,而且更简洁。如果不需要特殊字符的话还是直接写在字符池中比较好。

ASCII码表
  

信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。

 

八进制十六进制十进制字符八进制十六进制十进制字符
00000nul1004064@
01011soh1014165A
02022stx1024266B
03033etx1034367C
04044eot1044468D
05055enq1054569E
06066ack1064670F
07077bel1074771G
10088bs1104872H
11099ht1114973I
120a10nl1124a74J
130b11vt1134b75K
140c12ff1144c76L
150d13er1154d77M
160e14so1164e78N
170f15si1174f79O
201016dle1205080P
211117dc11215181Q
221218dc21225282R
231319dc31235383S
241420dc41245484T
251521nak1255585U
261622syn1265686V
271723etb1275787W
301824can1305888X
311925em1315989Y
321a26sub1325a90Z
331b27esc1335b91[
341c28fs1345c92\
351d29gs1355d93]
361e30re1365e94^
371f31us1375f95_
402032sp1406096'
412133!1416197a
422234"1426298b
432335#1436399c
442436$14464100d
452537%14565101e
462638&14666102f
472739`14767103g
502840(15068104h
512941)15169105i
522a42*1526a106j
532b43+1536b107k
542c44,1546c108l
552d45-1556d109m
562e46.1566e110n
572f47/1576f111o
603048016070112p
613149116171113q
623250216272114r
633351316373115s
643452416474116t
653553516575117u
663654616676118v
673755716777119w
703856817078120x
713957917179121y
723a58:1727a122z
733b59;1737b123{
743c60<1747c124|
753d61=1757d125}
763e62>1767e126~
773f63?1777f127del

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP生成随机字符串(字母+数字) 的相关文章

  • Android Studio(2.3.3)配置Kotlin笔记

    1 为AS装上Kotlin插件 xff0c 步骤如下 xff1a File gt Settings gt Plugins gt Browse Repositories中搜索 Kotlin gt 安装 xff08 Install xff09
  • J2EE技术规范(八)——JMS(消息,域)

    老样子 xff0c 继续完善J2EE技术规范 xff0c 这次内容主要是写个JMS 理解面向消息的中间件 定义 xff1a 消息 xff08 1 xff09 消息是可编程实现两端通信的机制 xff08 2 xff09 一些消息技术如 xff
  • J2EE技术规范(九)——JMS (JMS客户端)

    上篇博客写了JMS的一些内容 xff0c 后来觉得那篇博客的内容不够阐述JMS的内容 xff0c 所以这篇博客就继续完善JMS 在WebLogic Server 环境中配置JMS WebLogic Server的JMS特性 WebLogic
  • C++多线程项目 - 进程间通信实现(一)

    进程间通信实现 xff08 一 xff09 匿名管道有名管道匿名内存映射内存映射共享内存内存映射与共享内存比较 匿名管道 这里利用的是读时共享的策略 xff0c 因为只有读操作时 xff0c 子进程是共享父进程的资源 xff0c 那么我们进
  • KBQA的主要流程及部分Top竞赛方案总结

    一 KBQA的主要流程 1 1 什么是KBQA 给定自然语言问题 xff0c 通过对问题进行语义理解和解析 xff0c 进而利用知识库进行查询 推理得出答案 1 2 KBQA的实现范式 KBQA在技术上可以分成两种方案 xff0c 分别是一
  • Could not resolve host: github.com的解决方案

    描述 xff1a 新装的ubuntu2004 xff0c git clone命令时遇到标题描述问题 发现可以上网 xff0c 但是ping github com会出错 解决方法 xff1a 第一步 1 打开hosts文件 sudo vim
  • VirtualBox虚拟机网络怎么设置 VirtualBox虚拟机网络设置详细教程

    VirtualBox是国外的一款虚拟系统软件 xff0c 功能强大 xff0c 对于很多开发用户有所帮助 那么VirtualBox虚拟机网络该如何设置呢 相信很多用户会被这么一个问题所困扰 xff0c 下面小编来详细介绍下VirtualBo
  • C++库文件解析(conio.h)

    Conio h 控制台输入输出库 该文内容部分参照百度百科 Conio h 在C stanard library ISO C 和POSIX标准中均没有定义 Conio 是Console Input Output的简写 xff0c 其中定义了
  • [Qt] Linux环境下从源码编译Qt

    官网参考 xff1a Qt for Linux X11 Building from Source Qt 5 15 源码下载 xff1a Index of archive qt 5 15 5 15 0 submodules 这里使用的是各个模
  • Collections.max()方法不返回String类型的实际大小

    对于String类型的迭代器是按照字典序列排序的 xff0c 要让Collections max 方法返回实际的大小 xff0c 需要添加比较器 jdk8中对于Collections max xff09 方法有如下的说明 xff1a 样例
  • 简单三步,Github Pages自定义域名开启HTTPS

    登陆域名服务商后台增加 xff0c 域名解析记录 记录值格式为 xff1a username github io 登陆github xff0c 进行仓库设置 添加 自己的域名 xff0c 开启HTTPS
  • FtpClient.storeFile返回false解决方法

    原文地址为 xff1a FtpClient storeFile返回false解决方法 今天在利用FTP将客户端文件存储到服务器端时 xff0c 在调用ftpClient storeFile方法后 xff0c 总是返回false xff0c
  • 上班一个月,我的几点体会

    这篇博文其实在去年就已经在CSDN发过的 后来 xff0c 某次误操作不小心删除了 xff0c 今天找出来重新发一下 我是从3月1号开始上班的 xff0c 今天3月31号 xff0c 刚好一个月结束 xff0c 在这一个月里 xff0c 我
  • 我这一年写的博文

    总结2013 xff0c 展望2014 xff0c gt gt 我的2013年终总结 在苦与乐中成长 下面是我这一年所写的博客 xff0c 主要涉及C xff0c Net Framework xff0c SQL Server xff0c S
  • 我的2013年终总结——在苦与乐中成长

    写在前面 最近正好在三亚旅游 xff0c 空闲下来时 xff0c 便开始进行年终总结 由于去年年末较忙 xff0c 便错过了2012 年的年终总结 xff0c 所以本文将会对 2012 与 2013 两年一起进行总结 说说工作 学生 到 码
  • 走过2014,2015我将继续前行

    写在前面 一转眼 xff0c 一年时光就这么溜走了 在这辞旧迎新之际 xff08 这说法是不是很官方啊 xff0c 呵呵 xff01 xff09 xff0c 我将对即将过去的2014 年进行一番总结 xff0c 并对即将来临的 2015 年
  • C#使用随机数模拟器来模拟世界杯排名(二)

    接上一篇 xff1a C 使用随机数模拟器来模拟世界杯排名 一 C 使用随机数模拟器来模拟世界杯排名 一 斯内科的博客 CSDN博客 我们使用洗牌随机数算法来匹配世界杯对战国家 xff1a 新建洗牌随机数相关类RandomUtil 用于随机
  • Windows Server 2012 R2 服务器密码忘记问题

    解决方法 xff1a 1 准备好一张和当前Windows server 2012R2系统版本和位数相近 xff08 最好相同 xff09 的系统镜像光盘或者ISO文件 2 通过BIOS设置系统从光盘启动 出现安装系统的画面 xff0c 点击
  • Butterknife的替代者ViewBinding的简单使用

    Android自家的 xff0c 又可以省去findviewbyid xff0c 而且Butterknife上大神都已经推荐使用的 xff0c 还有什么理由不去改写呢 build gradle 开启viewBinding功能 android
  • matlab中删除矩阵中的某些行

    方法1 遍历所有行 xff0c 找到满足要求的行tag xff0c 然后调用A a 61 A span class token operator 61 span neighborhood s span class token punctua

随机推荐