<?php$fileid=date("ymd-his") . '-' . rand(100,999);
//$fileid為 20100903-132121-908 這樣的的隨機數
?>
<?phpfunction randomkeys($length
); //
生成php隨機數}
return
$key;}
echo randomkeys(4);
?>
<?php//seed使用者自定義函式以微秒作為種子
function
seed()
//播下隨機數發生器種子,用srand函式呼叫seed函式的返回結果
srand
(seed());
//輸出產生的隨機數,隨機數的範圍為10-100
echo
rand(10,100);
?>
上面這個和下面這個不是沒什麼不同嗎?都是隨機輸出10-100之間的數,新人學習,可能問的太簡單了呵呵
<?phpecho
rand(10,100);
?>
<?phpecho
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()的輸出結果。
<?function
guid()
echo guid();
?>
這個方法可以生成唯一字串
php生成唯一數值
fileid date ymd his rand 100,999 fileid為 20100903 132121 908 這樣的的隨機數 function randomkeys length 生成php隨機數 return key echo randomkeys 4 seed使用者自定義函式以微秒作...
php生成唯一數字id的方法彙總
關於生成唯一數字id的問題,是不是需要使用rand生成乙個隨機數,然後去資料庫查詢是否有這個數呢?感覺這樣的話有點費時間,有沒有其他方法呢?當然不是,其實有兩種方法可以解決。1.如果你只用php而不用資料庫的話,那時間戳 隨機數是最好的方法,且不重複 2.如果需要使用資料庫,即你還需要給這個id關聯...
php 生成唯一ID
function guid factor prefix suffix 生成因子 機器毫秒,使用者瀏覽器與作業系統資訊,使用者ip,隨機因子,及自定義 factor 因子 原理 自定義 factor 因子 例如可使用使用者 user id 模組標識 product,order.字首 prefix 可用...