PHP獲取隨機數字和字母的方法大全

第一種方法 php

<?php 瀏覽器

  $FileID=date("Ymd-His") . '-' . rand(100,999); dom

  //$FileID爲   20100903-132121-908   這樣的的隨機數 函數

?> 學習

第二種方法 工作流

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

第三種方法 function

<?php 隨機數

//seed用戶自定義函數以微秒做爲種子 配置

function seed()

{

list($msec, $sec) = explode(' ', microtime());

return (float) $sec;

}

//播下隨機數發生器種子,用srand函數調用seed函數的返回結果

srand(seed());

//輸出產生的隨機數,隨機數的範圍爲10-100

echo rand(10,100);

?>

上面這個和下面這個不是沒什麼不一樣嗎?都是隨機輸出10-100之間的數,新人學習,可能問的太簡單了呵呵

<?php

echo rand(10,100);

?>

mt_rand(10,100);

srand是種子,若是不設的話默認是1

rand通常是利用種子作參數的一種固定的運算

你試一下就知道了,不設種子或者設一個固定的種子,運行rand

而後再關了瀏覽器再開,再運行rand

你會發現結果一直是同樣的

先說rand()函數吧,rand([int min], [int max]) 本函數從min和max之間取一個隨機數。若沒有指定隨機數的最大及最小範圍,本函數會自動的從0到RAND_MAX中取一個隨機數。

可是若是隻用rand()這個函數,隨機數的亂度很大,每次在取隨機數以前最好使用srand()函數,以配置新的隨機數種子。

解釋一下下面這個用法(通常都是這樣用這兩個函數的):

srand((double)microtime()*1000000);

$rand_number= rand();

microtime()返回了兩個值:當前毫秒和時間戳,咱們要提取隨機數,只能從毫秒中取一個隨機數,(double)microtime()就只返回當前的毫秒值。
microtime()是以秒爲單位的毫秒數,於是值都是小數,乘以1000000將其換算爲整數

它們的工做流程以下:

(1):首先,給srand()提供一個」種子」;,它是一個unsigned_int類型的值。

(2):_而後,調用rand(),它會根據提供給srand()的值返回一個隨機數(範圍在_0~32767之間)

(3):根據須要屢次調用rand(),不斷獲得新的隨機數。

(4):不管何時能夠給srand()提供一個新的「種子」,從而進一步「隨機化」rand()的輸出結果。

相關文章
相關標籤/搜索