1.主要利用了兩個函數:
chr()
mt_rand()
2.語法格式:
mt_rand()
使用Mersenne Twister
演算法傳回隨機整數。
mt_rand(min,max)
如果沒有提供選用參數 min
和 max
,mt_rand()
傳回0 到RAND_MAX
之間的偽隨機數。例如想要 5 到 15(包括 5 和 15)之間的隨機數,用 mt_rand(5, 15)
。很多老的 libc
的隨機數產生器具有一些不確定和未知的特性而且很慢。 PHP 的 rand()
函數預設使用 libc
隨機數產生器。 mt_rand()
函數是非正式用來取代它的。函數用了Mersenne Twister
中已知的特性作為隨機數字產生器,它可以產生隨機數值的平均速度比libc
提供的 rand()
快四倍。
chr()
用一個範圍在 range
(256)內的(就是0~255)整數作參數,傳回一個對應的字元。
chr(i)
傳回值是目前整數對應的 ASCII
字元。
3.利用上述兩個函數,產生隨機字串
<?php function getString($length = 4) { //从ASCII码中获取 $captcha = ''; //随机取:大写、小写、数字 for($i = 0;$i < $length; $i++){ //随机确定是字母还是数字 switch(mt_rand(1,3)){ case 1: //数字:49-57分别代表1-9 $captcha .= chr(mt_rand(49,57)); break; case 2: //小写字母:a-z $captcha .= chr(mt_rand(65,90)); break; case 3: //大写字母:A-Z $captcha .= chr(mt_rand(97,122)); break; } } //返回 return $captcha; } echo getString(5); ?>
以上是如何在php中產生隨機字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!