2011-10-04 59 views
0

我知道這個問題是非常普遍的,但我問以下(谷歌沒有收到任何結果,與我類似的另一個問題有不正確的來源:s):生成6char UP/DOWN字符串的最佳方法是什麼? PHP

什麼是最好的方法得到一個隨機的6個字符不同的字母串,例如'aWGuPk'/'pZyTFu'或者某種類型的東西(在PHP中)? 「最好」的代碼是最短的,最有效的?

對不起,如果這可能是我找不到的東西的重複。

感謝, 卡蘭

+0

也許這個網頁可以幫助你:http://www.laughing-buddha.net/php/lib/password –

+0

謝謝! :)無法在Google上找到該鏈接:S – Karan

+0

沒問題...很高興我能幫上忙。 –

回答

1

這是我使用的功能(我必須剪切和粘貼該從什麼地方在互聯網上,不記得在哪裏!): -

function createRandomString($len=10) { 
    $chars = "abcdefghijkmnopqrstuvwxyz023456789"; 
    srand((double)microtime()*1000000); 
    $i = 0; 
    $pass = '' ; 
    while ($i <= $len) { 
     $num = rand() % 33; 
     $tmp = substr($chars, $num, 1); 
     $pass = $pass . $tmp; 
     $i++; 
    } 
    return $pass; 
} 

用法: -

$myStr = createRandomString(6); 

添加以大寫字符爲$字符,如果你想大小寫混合

+0

從這裏:https://github.com/rickhurst/eatStatic/blob/master/library/eatStatic/eatStatic.class.php – Mido

+0

這是來自我的一個github項目!我的意思是在我開始在我自己的庫中使用它之前;) – rickhurst

+0

抱歉哈哈,沒有注意到那裏的名字。 – Mido

0

個人而言,我創建的容許字符的數組,並使用array_rand將它們附加到字符串所需的次數:

// str_split requires PHP5 
$chars = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); 
for ($i = 0, $str = ''; $i < 6; ++$i) { 
    $str .= $chars[array_rand($chars)]; 
} 

順便提及,生成隨機字符串時,將被顯示給用戶,我往往會從字符列表中刪除元音,以避免意外產生冒犯性的詞語。

相關問題