php隨機生成代碼
『壹』 php怎麼生成6位隨機數,php隨機數例子
通常情況下,當我們要生成一個隨機字元串時,總是先創建一個字元池,然後用一個循環和mt_rand()或rand()生成php隨機數,從字元池中隨機選取字元,最後拼湊出需要的長度。代碼如下:
function randomkeys($length)
{
$pattern = '
ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&l
t;>?;#:@~[]{}-_=+)(*&^%___FCKpd___0pound;"!'; //字元池
for($i=0;$i<$length;$i++)
{
$key .= $pattern{mt_rand(0,35)}; //生成php隨機數
}
return $key;
}
echo randomkeys(8);
這個php隨機函數能生成XC*=z~7L這樣的字元串,隨機!
『貳』 php如何隨機生成一段隨機長度的文字
PHP生成隨機長度的隨機字元串,本質就是多次調用隨機函數,例如要生成10-20個隨機字元,那麼首先用rand(10,20)生成隨機長度,然後rang(1,26)生成每一個隨機字元即可(如果需要區分大小寫、允許數字需要增加一些控制),最簡單的例子代碼:
<?php
$n=rand(10,20);
$s='';
for($i=1;$i<=$n;$i++)
$s.=chr(ord('a')+rand(1,26)-1);
echo$s;
?>
運行幾次的例子如下:
E:TEMP文件exp>a.php
nzgxatyitkej
E:TEMP文件exp>a.php
jegqruuyvoyre
E:TEMP文件exp>a.php
pqjdiawjmbrgvyrth
『叄』 php:如何生成隨機的唯一字母數字字元串
1. 自己寫代碼產生隨機的數字和字母組合,每產生1個去資料庫查詢該隨機碼是否已存在,如果已存在,則重新產生,直到不重復為止。
缺點:產生速度慢,還要查詢資料庫,當數據量大的時候,可能重復的機率會比較高,要查詢多次資料庫.
2. guid,該方法應該是用的比較多的。
優點:使用簡單方便,不用自己編寫額外的代碼
缺點:佔用資料庫空間相對較大,特別是根據guid查詢速度比較慢(畢竟是字元串)。
3. 主鍵+隨機碼的方式,我們產生的隨機碼保存到資料庫肯定會有個主鍵,用該主鍵+隨機字元來組合。產生步驟:
1) 先從id生成器中獲取id,比如是155.
2)填充成固定位數(比如8位)的字元串(不夠位數的左邊填0,超過位數直接使用該數字),得到:00000155
3)在每個數字後面隨機插入1個字母或其它非數字元號,得到:0A0F0R0Y0H1K5L5M
這樣就可以得到1個隨機的唯一的邀請碼了。
優點:使用也比較簡單,不用查詢資料庫。最大的優點是查詢的時候,可以根據邀請碼直接得到主鍵id,然後根據id去資料庫查詢(速度很快),再比較查詢出來的邀請碼和用戶提交的邀請碼是否一致。
缺點:需要使用id產生器,如果主鍵是資料庫自增長的就不太好用(需要先插入資料庫獲取id,再更新邀請碼)。
4. 有時候產品經理說,我要求邀請碼都是數字的。把方法3變通下就可以實現唯一的純數字隨機碼了。
1) 獲取id: 155
2) 轉換成8進制:233
3) 轉為字元串,並在後面加'9'字元:2339
4)在後面隨機產生若干個隨機數字字元:2003967524987
轉為8進制後就不會出現9這個字元,然後在後面加個'9',這樣就能確定唯一性。最後在後面產生一些隨機數字就可以。
『肆』 php如何生成多個隨機顏色代碼
<?php
functionrandColor($num){
//colorvaluelimits0-16777215;
$prehash='#';//usingstring'#'beforethecolorvalue;
$rsArr=[];
$color=rand(0,16777215);
for($i=0;$i<$num;$i++){
$rsArr[$i]=$prehash.dechex($color);
}
return$rsArr;
}
print_r(randColor(20));
『伍』 求一個生成四位隨機數的PHP代碼
最簡單的代碼:
圖片:
文字:
<?php
echo "四位隨機代碼是:". mt_rand(999, 9999); //隨機值得范圍是999-9999
?>隱滲
在PHP中 mt_rand是隨機函數,括弧中是隨機值范圍:從最小值到最大值之間隨機變換。
(5)php隨機生成代碼擴展閱讀:
1、mt_rand定義和用法:
mt_rand (PHP 4, PHP 5, PHP 7) —生成更好的隨機數。
2、mt_rand說明:
intmt_rand(void)。
intmt_rand(int$min,int$max)。
很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的rand()函數默認使用 libc 隨機數發生器。禪攜森mt_rand()函數是非正式賀畝用來替換它的。
如果沒有提供可選參數min和max,mt_rand()返回 0 到mt_getrandmax()之間的偽隨機數。例如想要 5 到 15(包括 5 和 15)之間的隨機數,用mt_rand(5, 15)。
3、參數:
min 可選的、返回的最小值(默認:0)。
max 可選的、返回的最大值(默認:mt_getrandmax())。
4、返回值:
返回min(或者 0) 到max(或者是到mt_getrandmax(),包含這個值)之間的隨機整數。
PHP官網-mt_rand
『陸』 求php生成多個隨機數代碼
$str = "abcdef123456"; //定義一串字元串
$strlen = strlen($str); //獲取字元串的長度(12)
$rand = intval(rand(0,$strlen-1)); //在字元串的長度范圍內隨機取一個字元,字元長度不能大於字元本身的長度所以-1
$str_a = substr($str,$rand,1); //取出字元
//取六個隨機數
$randstr = ''; //聲明一個變數
$randarr = array(); //聲明一個數組
for($i = 1; $i < 30; $i++){
$rand6 = intval(rand(0,$strlen-1));
$str_a6 = substr($str,$rand6,1);
if(!in_array($str_a6,$randarr)){
$randstr .= $str_a6;
array_push($randarr,$str_a6);
if(count($randarr)==6){
break;
}
}
}
echo $randstr;
『柒』 php如何生成多個隨機不重復顏色代碼
顏色取值范圍16777215這樣的值不準確也不科學吧。顏色由RGB組成。一共有255*255*255種可能。直接組合一下就行了。
$base=range(0,255);
$R=array_rand($base,20);shuffle($R);
$G=array_rand($base,20);shuffle($G);
$B=array_rand($base,20);shuffle($B);
for($i=0;$i<20;$i++){
$color[]='#'.dechex($R[$i]).dechex($G[$i]).dechex($B[$i]);//這里再加上補足兩位就ok了
}
var_mp($color);
『捌』 php里怎麼實現生成隨機文件名求具體示例代碼
<?php
$result=random(10);//生成10位隨機數
//$result=random(10, '悔畝');//生成10位字母數字混合字元串
echo "<input type='text' size='20' value='{$result}'>";
/**
* 產生李前宏隨機字元串
*
* @param int $length 輸出長度
* @param string $chars 可選哪冊的 ,默認為 0123456789
* @return string 字元串
*/
function random($length, $chars = '0123456789') {
$hash = '';
$max = strlen($chars) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
?>
『玖』 求一段隨機數的php代碼
以下代碼可實現你的需模旅模求,可以直接運行,已測
<?php
$tmp='';
for($i=1;$i<=100000;$i++){
if(rand(0,100)<25){
$tmp.='1';
}else{
旦緩鎮歲$tmp.='0';
}
}
file_put_contents('a.txt',$tmp);
?>
『拾』 PHP生成隨機數的幾種方法
php生成隨機數的幾種方法,總結如下:
第一種方法,非常簡單,直接使用系統自帶的函數:
查看代碼1 srand((double)microtime()*1000000);
2 //隨機產生0-99之間的整數
3 $randval=rand(0,99999999);
4 echo $randval,'
';
5
6
第二種方法,稍微復雜一點,不只是生成只有數字的隨機字元串,更包括了各種特殊字元:
查看代碼
function randomkeys($length){
$output='';
for($a=0;$a<$length; $a++){
$output.=chr(mt_rand(33, 126));
}
return $output;
}
echo randomkeys(20);