在之前的文章中我們介紹了快速獲取操作系統(tǒng)類型的三種方法,感興趣的可以點(diǎn)擊鏈接進(jìn)行查閱→《怎么通過PHP快速獲取操作系統(tǒng)類型(3種方法)》。這次我們來聊聊隨機(jī)字符串,看看利用PHP怎么可以生成并隨機(jī)字符串,感興趣的可以學(xué)習(xí)了解一下~
今天本文的主題是:利用PHP生成指定個數(shù)的隨機(jī)字符,即生成指定長度的隨機(jī)字符串。
下面開始正文,通過代碼實(shí)例來給大家分享兩種方法。
方法一:利用rand()函數(shù)
<?php function getRandChar($length) { $str = null; $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; $max = strlen($strPol) - 1; for ($i = 0; $i < $length; $i++) { $str .= $strPol[rand(0, $max)]; //rand($min,$max)生成介于min和max兩個數(shù)之間的一個隨機(jī)整數(shù) } return $str; } echo getRandChar(20); ?>
分析代碼
-
定義了一個字符串變量$strPol,里面包含全部需要的字符;
-
for循環(huán)的作用是控制隨機(jī)字符串的長度;
-
在每次循環(huán)時(shí),利用
rand(0, $max)
隨機(jī)生成一個數(shù)字(數(shù)字的范圍在0
~字符串$strPol的長度-1
); -
將隨機(jī)數(shù)字作為下標(biāo),取出字符串$strPol中的指定字符,并使用
.=
拼接在一起,生成字符串
在上面的代碼中,調(diào)用getRandChar(20)
設(shè)置隨機(jī)字符串的長度為20,因此輸出結(jié)果為:
不斷刷新,會發(fā)現(xiàn)每次輸出的不同
下面給大家介紹一下rand()函數(shù)。
rand(min,max)
會返回 min
與 max
之間(包括邊界值)的隨機(jī)整數(shù);如果省略這兩個參數(shù),則返回 0 到 RAND_MAX 之間的偽隨機(jī)整數(shù)。
方法2:substr()+str_shuffle() + mt_rand()函數(shù)
<?php function getRandChar($length) { $strPol = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm"; $max = strlen($strPol) - $length-1; $str = substr(str_shuffle($strPol), mt_rand(0, $max), $length); return $str; } echo getRandChar(30); ?>
分析代碼:
-
定義了一個字符串變量
$strPol
,里面包含全部需要的字符; -
利用
str_shuffle($strPol)
打亂字符串,利用mt_rand(0, $max)
隨機(jī)生成一個數(shù)字(數(shù)字的范圍在0
~字符串$strPol的長度-$length-1
); -
使用
substr()
函數(shù)以隨機(jī)數(shù)字為開始位置來截取已打亂的字符串,返回$length
長度的子串,這個子串就是要返回的隨機(jī)字符串。
在上面的代碼中,調(diào)用getRandChar(15)
設(shè)置隨機(jī)字符串的長度為15,因此輸出結(jié)果為:
不斷刷新,會發(fā)現(xiàn)每次輸出的不同
好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個哦。→ →php視頻教程
最后給大家推薦閱讀一個經(jīng)典課程《PHP字符串處理(玉女心經(jīng)版)》,免費(fèi)的~快來學(xué)習(xí)??!