溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用PHP怎么獲取隨機(jī)數(shù)字和字母

發(fā)布時間:2021-01-19 16:03:24 來源:億速云 閱讀:211 作者:Leah 欄目:開發(fā)技術(shù)

使用PHP怎么獲取隨機(jī)數(shù)字和字母?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

第一種方法

復(fù)制代碼 代碼如下:


<?php
  $FileID=date("Ymd-His") . '-' . rand(100,999);
  //$FileID為   20100903-132121-908   這樣的的隨機(jī)數(shù)
?>


第二種方法

復(fù)制代碼 代碼如下:


<?php
function randomkeys($length) {
    $returnStr='';
    $pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
    for($i = 0; $i < $length; $i ++) {
        $returnStr .= $pattern {mt_rand ( 0, 61 )}; //生成php隨機(jī)數(shù)
    }
    return $returnStr;
}
echo randomkeys(4);
?>


第三種方法

復(fù)制代碼 代碼如下:


<?php
//seed用戶自定義函數(shù)以微秒作為種子
function seed()
{
list($msec, $sec) = explode(' ', microtime());
return (float) $sec;
}
//播下隨機(jī)數(shù)發(fā)生器種子,用srand函數(shù)調(diào)用seed函數(shù)的返回結(jié)果
srand(seed());
//輸出產(chǎn)生的隨機(jī)數(shù),隨機(jī)數(shù)的范圍為10-100
echo rand(10,100);
?>


上面這個和下面這個不是沒什么不同嗎?都是隨機(jī)輸出10-100之間的數(shù),新人學(xué)習(xí),可能問的太簡單了呵呵

復(fù)制代碼 代碼如下:


<?php
echo rand(10,100);
?>
mt_rand(10,100);


srand是種子,如果不設(shè)的話默認(rèn)是1
rand一般是利用種子做參數(shù)的一種固定的運(yùn)算
你試一下就知道了,不設(shè)種子或者設(shè)一個固定的種子,運(yùn)行rand
然后再關(guān)了瀏覽器再開,再運(yùn)行rand
你會發(fā)現(xiàn)結(jié)果一直是一樣的
先說rand()函數(shù)吧,rand([int min], [int max])   
本函數(shù)從min和max之間取一個隨機(jī)數(shù)。若沒有指定隨機(jī)數(shù)的最大及最小范圍,本函數(shù)會自動的從0到RAND_MAX中取一個隨機(jī)數(shù)。
但是如果只用rand()這個函數(shù),隨機(jī)數(shù)的亂度很大,每次在取隨機(jī)數(shù)之前最好使用srand()函數(shù),以配置新的隨機(jī)數(shù)種子。
解釋一下下面這個用法(一般都是這樣用這兩個函數(shù)的):
srand((double)microtime()*1000000);
$rand_number= rand();
microtime()返回了兩個值:當(dāng)前毫秒和時間戳,我們要提取隨機(jī)數(shù),只能從毫秒中取一個隨機(jī)數(shù),(double)microtime()就只返回當(dāng)前的毫秒值。
microtime()是以秒為單位的毫秒數(shù),因而值都是小數(shù),乘以1000000將其換算為整數(shù)

它們的工作流程如下:
(1):首先,給srand()提供一個”種子”;,它是一個unsigned_int類型的值。
(2):_然后,調(diào)用rand(),它會根據(jù)提供給srand()的值返回一個隨機(jī)數(shù)(范圍在_0~32767之間)
(3):根據(jù)需要多次調(diào)用rand(),不斷得到新的隨機(jī)數(shù)。
(4):無論什么時候可以給srand()提供一個新的“種子”,從而進(jìn)一步“隨機(jī)化”rand()的

關(guān)于使用PHP怎么獲取隨機(jī)數(shù)字和字母問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI