程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP獲取隨機數字和字母的方法大全

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

編輯:關於PHP編程

第一種方法   <?php     $FileID=date("Ymd-His") . '-' . rand(100,999);     //$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); ?>   第三種方法   <?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()的   輸出結果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved