利用for迴圈把我們定義好的字元遍曆即可
| 代碼如下 |
複製代碼 |
<?php /* Generate Password * Length : 8 */ $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';//62個字元 $strlen = 62; while($length > $strlen){ $str .= $str; $strlen += 62; } $str = str_shuffle($str); return substr($str,0,$length); } echo createRandomStr(10); ?> |
利用數組和字元轉換的思想:
| 代碼如下 |
複製代碼 |
<?php /** *@blog <www.111cn.net> */ 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); ?> |