當(dāng)我們要生成一個隨機(jī)字符串時,總是先創(chuàng)建一個字符池,然后用一個循環(huán)和mt_rand()或rand()生成php隨機(jī)數(shù),從字符池中隨機(jī)選取字符,最后拼湊出需要的長度 [php] function randomkeys($length) { $pattern = '1234567890abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&l t;>?;#:@~[]{}-_=+)(*&^%$£"!'; //字符池 for($i=0;$i<$length;$i++) { $key .= $pattern{mt_rand(0,35)}; //生成php隨機(jī)數(shù) } return $key; } echo randomkeys(8); [/php] 另一種用PHP生成隨機(jī)數(shù)的方法:利用chr()函數(shù),省去創(chuàng)建字符池的步驟。 [php] function randomkeys($length) { $output=''; for ($a = 0; $a<$length; $a++) { $output .= chr(mt_rand(33, 126)); //生成php隨機(jī)數(shù) } return $output; } echo randomkeys(8); [/php] 在第二個php隨機(jī)函數(shù)里,先用mt_rand()生成一個介于33到126之間的php隨機(jī)數(shù),然后用chr()函數(shù)轉(zhuǎn)化成字符。查看ascii碼表就會發(fā)現(xiàn),33到126代表的正是第一個函數(shù)中字符池里的所有字符。第二個函數(shù)和第一個函數(shù)功能相同,而且更簡潔。
發(fā)表評論