因為工具需我們需要寫一個可以隨機字符串生成了函數,這個我在想網上應該很多這類生成隨機字符串函數,百度了一下一大堆下面我來給各位總結這些不錯的php函數。
利用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.bKjia.c0m>
*/
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);
?>