PHP生成随机字符串实例代码(字母+数字)


Posted in PHP onSeptember 11, 2019

当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和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码表,它的全称是“美国信息交换标准代码”。

八进制 十六进制 十进制 字符 八进制 十六进制 十进制 字符
00 00 0 nul 100 40 64 @
01 01 1 soh 101 41 65 A
02 02 2 stx 102 42 66 B
03 03 3 etx 103 43 67 C
04 04 4 eot 104 44 68 D
05 05 5 enq 105 45 69 E
06 06 6 ack 106 46 70 F
07 07 7 bel 107 47 71 G
10 08 8 bs 110 48 72 H
11 09 9 ht 111 49 73 I
12 0a 10 nl 112 4a 74 J
13 0b 11 vt 113 4b 75 K
14 0c 12 ff 114 4c 76 L
15 0d 13 er 115 4d 77 M
16 0e 14 so 116 4e 78 N
17 0f 15 si 117 4f 79 O
20 10 16 dle 120 50 80 P
21 11 17 dc1 121 51 81 Q
22 12 18 dc2 122 52 82 R
23 13 19 dc3 123 53 83 S
24 14 20 dc4 124 54 84 T
25 15 21 nak 125 55 85 U
26 16 22 syn 126 56 86 V
27 17 23 etb 127 57 87 W
30 18 24 can 130 58 88 X
31 19 25 em 131 59 89 Y
32 1a 26 sub 132 5a 90 Z
33 1b 27 esc 133 5b 91 [
34 1c 28 fs 134 5c 92 \
35 1d 29 gs 135 5d 93 ]
36 1e 30 re 136 5e 94 ^
37 1f 31 us 137 5f 95 _
40 20 32 sp 140 60 96 '
41 21 33 ! 141 61 97 a
42 22 34 " 142 62 98 b
43 23 35 # 143 63 99 c
44 24 36 $ 144 64 100 d
45 25 37 % 145 65 101 e
46 26 38 & 146 66 102 f
47 27 39 ` 147 67 103 g
50 28 40 ( 150 68 104 h
51 29 41 ) 151 69 105 i
52 2a 42 * 152 6a 106 j
53 2b 43 + 153 6b 107 k
54 2c 44 , 154 6c 108 l
55 2d 45 - 155 6d 109 m
56 2e 46 . 156 6e 110 n
57 2f 47 / 157 6f 111 o
60 30 48 0 160 70 112 p
61 31 49 1 161 71 113 q
62 32 50 2 162 72 114 r
63 33 51 3 163 73 115 s
64 34 52 4 164 74 116 t
65 35 53 5 165 75 117 u
66 36 54 6 166 76 118 v
67 37 55 7 167 77 119 w
70 38 56 8 170 78 120 x
71 39 57 9 171 79 121 y
72 3a 58 : 172 7a 122 z
73 3b 59 ; 173 7b 123 {
74 3c 60 174 7c 124 |
75 3d 61 = 175 7d 125 }
76 3e 62 > 176 7e 126 ~
77 3f 63 ? 177 7f 127 del

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP中for循环语句的几种变型
Nov 26 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
thinkphp缓存技术详解
Dec 09 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
WordPress中查询文章的循环Loop结构及用法分析
Dec 17 PHP
php json_encode与json_decode详解及实例
Dec 13 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 #PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 #PHP
Laravel框架验证码类用法实例分析
Sep 11 #PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 #PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 #PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 #PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 #PHP
You might like
php中使用临时表查询数据的一个例子
2013/02/03 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
常用PHP封装分页工具类
2017/01/14 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
jQuery时间轴插件使用详解
2015/07/16 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
团队口号大全
2014/06/06 职场文书
爱护公共设施标语
2014/06/24 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
党委工作总结2015
2015/04/27 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang