因为工具需我们需要写一个可以随机字符串生成了函数,这个我在想网上应该很多这类生成随机字符串函数,百度了一下一大堆下面我来给各位总结这些不错的php函数。
利用for循环把我们定义好的字符遍历即可,代码如下:
- <?php
-
-
-
- $str = “0123456789abcdefghijklmnopqrstuvwxyz”;
- $n = 8;
- $len = strlen($str)-1;
- for($i=0 ; $i<$n; $i++){
- $s .= $str[rand(0,$len)];
- }
- echo $s . “<br/>”;
- ?>
可以生成指定长度的纯数字字符串、字符字符串等等,(大写、小写、大小写及大小写与数字的组合,还可以根据喜好进行扩充)。
下面的$length=5,如果你改成10就是10位。
把$str = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' 改成$str = '0123456789' 就是纯数字字符串,代码如下:
- <?php
- function getRandStr($length) {
- $str = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $randString = '';
- $len = strlen($str)-1;
- for($i = 0;$i < $length;$i ++){
- $num = mt_rand(0, $len);
- $randString .= $str[$num];
- }
- return $randString ;
- }
-
- $test=getRandStr($length=5);
- echo $test;
- ?>
或使用while,代码如下:
- <?php
-
-
- function createRandomStr($length){
- $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $strlen = 62;
- while($length > $strlen){
- $str .= $str;
- $strlen += 62;
- }
- $str = str_shuffle($str);
- return substr($str,0,$length);
- }
- echo createRandomStr(10);
- ?>
利用数组和字符转换的思想,代码如下:
- <?php
-
-
-
- function createRandomStr($length){
- $str = array_merge(range(0,9),range('a','z'),range('A','Z'));
- shuffle($str);
- $str = implode('',array_slice($str,0,$length));
- return $str;
- }
- echo createRandomStr(10);
- ?>