国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:09:22
字體:
來源:轉載
供稿:網友

第一種方法

復制代碼 代碼如下:


<?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()的
輸出結果。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阆中市| 分宜县| 泸水县| 怀安县| 始兴县| 张掖市| 松阳县| 肇庆市| 林芝县| 积石山| 濮阳市| 阜南县| 临洮县| 泗阳县| 陆良县| 和林格尔县| 宜黄县| 伊通| 娄烦县| 浮梁县| 安丘市| 夹江县| 彝良县| 邢台县| 黔西| 泰顺县| 军事| 浪卡子县| 凤凰县| 濉溪县| 吉林省| 长武县| 阜城县| 偃师市| 沈阳市| 华宁县| 比如县| 孟村| 景谷| 张北县| 册亨县|