好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php随机生成字符串一些方法总结 - php函数

php随机生成字符串一些方法总结

前面有讲过生成随机密码,下面我再来给大家介绍一些常用的生成随机字符串的函数吧,这些都是我们自定义的函数,当然也有系统自带函数了,不过都比较简单了。

mt_rand函数,实例 例子代码如下,在本例中,我们会返回一些随机数:

echo (mt_rand());  echo (mt_rand());  echo (mt_rand(10,100));  ?>  //输出类似:   3150906288  513289678  35 

下面我们来看看mt_rand函数的实例 吧,代码如下:

function  roll () {      return  mt_rand(1,6);     }  echo  roll();  function  roll ( $sides ) {      return  mt_rand(1, $sides );  }      echo  roll(6);  // roll a six-sided die       echo  roll(10);  // roll a ten-sided die       echo  roll(20);  // roll a twenty-sided die  

上面都只能生成简单的纯数字,不能是字母或数字与字母的,下面我们需用到自定义函数了,代码如下:

function  genRandomString( $len ) {       $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"        );       $charsLen  =  count ( $chars ) - 1;      shuffle( $chars );  // 将数组打乱              $output  =  "" ;       for  ( $i =0;  $i < $len ;  $i ++) {           $output  .=  $chars [mt_rand(0,  $charsLen )];      }             return   $output ;  }  $str  = genRandomString(25);  $str  .=  "" ;  $str  .= genRandomString(25);  $str  .=  "" ;  $str  .= genRandomString(25);  $str  .=  "" ;  echo   $str ;  ?> 

程序输出如下:

DmLVAmDkEJz8wHXRCNwzvANlB

BILZSA19YyuSVcR17KrrZsOKO

inlWlQF0GSabN3l589y9s16Gg

下面是一个小实例,默认生成的随机字符串长度为5,生成的字符串包含:数字+大写字母,函数功能:

1、生成指定长度的随机字符串

2、灵活选择生成的随机字符串的复杂度

代码如下:

/**     +----------------------------------------------------------    * 生成随机字符串     +----------------------------------------------------------    * @param int       $length  要生成的随机字符串长度    * @param string    $type    随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符     +----------------------------------------------------------    * @return string     +----------------------------------------------------------    */   function  randCode( $length  = 5,  $type  = 0) {       $arr  =  array (1 =>  "0123456789" , 2 =>  "abcdefghijklmnopqrstuvwxyz" , 3 =>  "ABCDEFGHIJKLMNOPQRSTUVWXYZ" , 4 =>  "~@#$%^&*(){}[]|" );       if  ( $type  == 0) {           array_pop ( $arr );           $string  = implode( "," ,  $arr );      }  else   if  ( $type  ==  "-1" ) {           $string  = implode( "," ,  $arr );      }  else  {           $string  =  $arr [ $type ];      }       $count  =  strlen ( $string ) - 1;       for  ( $i  = 0;  $i  <  $length ;  $i ++) {           $str [ $i ] =  $string [rand(0,  $count )];           $code  .=  $str [ $i ];      }       return   $code ;  } 

另一个小实例:

1、预置一个的字符数组 $chars,包括 a – z,A – Z,0 – 9,以及一些特殊字符

2、通过array_rand()从数组 $chars 中随机选出 $length 个元素.

3、根据已获取的键名数组 $keys,从数组 $chars 取出字符拼接字符串。该方法的缺点是相同的字符不会重复取.

代码如下:

function  make_password(  $length  = 8 )  {       // 密码字符集,可任意添加你需要的字符        $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' ,  '!' ,        '@' , '#' ,  '$' ,  '%' ,  '^' ,  '&' ,  '*' ,  '(' ,  ')' ,  '-' ,  '_' ,        '[' ,  ']' ,  '{' ,  '}' ,  '<' ,  '>' ,  '~' ,  '`' ,  '+' ,  '=' ,  ',' ,        '.' ,  ';' ,  ':' ,  '/' ,  '?' ,  '|' );       // 在 $chars 中随机取 $length 个数组元素键名        $keys  =  array_rand ( $chars ,  $length );       $password  =  '' ;       for ( $i  = 0;  $i  <  $length ;  $i ++)      {           // 将 $length 个数组元素连接成字符串            $password  .=  $chars [ $keys [ $i ]];      }       return   $password ;  }

查看更多关于php随机生成字符串一些方法总结 - php函数的详细内容...

  阅读:42次