深入PHP獲取隨機數字和字母的方法詳解

2022-09-29 05:12:07 字數 1583 閱讀 9975

第一種方法

複製** **如下:

php  $fileid=date("ymd-his") . '-' . rand(100,999)gjwpzozasl;

//$fileid為   20100903-132121-908   這樣的的隨機數

?>

第二種方法

複製** **如下:

<?php

function randomkeys($length) ; //生成php隨機數

}return $returnstr;

}echo randomkeys(4);

?>

第三種方法

複製** **如下:

<?php

//seed使用者自定義函式以微秒作為種子

functionwww.cppcns.com seed()

//播下隨機數發生器種子,用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()的

輸出結果。

本文標題: 深入php獲取隨機數字和字母的方法詳解

本文位址:

獲取隨機數字

1.獲取隨機數字 獲取固定長度的隨機數字 param n return public static string getrandom int n random random new random stringbuffer buffer new stringbuffer n for int i 0 i...

C 生成隨機數字母加數字

生成隨機字串 目標字串的長度 是否包含數字,預設為包含 是否包含小寫字母,預設為包含 是否包含大寫字母,預設為包含 是否包含特殊字元,預設為非包含 要包含的自定義字元,直接輸入要包含的字元列表 指定長度的隨機字串 public static string getrandomstring int le...

php 獲取隨機數

獲得最小和最大值之間隨機數,位數不足補零 function getrandnumber fmin fmax fileid date ymd his rand 100,999 fileid為 20100903 132121 908 這樣的的隨機數 function randomkeys length ...