溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符

發(fā)布時(shí)間:2021-08-30 09:29:33 來(lái)源:億速云 閱讀:159 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

方法一:利用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兩個(gè)數(shù)之間的一個(gè)隨機(jī)整數(shù)
	}

	return $str;
}

echo getRandChar(20);
?>

分析代碼

  • 定義了一個(gè)字符串變量$strPol,里面包含全部需要的字符;

  • for循環(huán)的作用是控制隨機(jī)字符串的長(zhǎng)度;

  • 在每次循環(huán)時(shí),利用rand(0, $max)隨機(jī)生成一個(gè)數(shù)字(數(shù)字的范圍在0~字符串$strPol的長(zhǎng)度-1);

  • 將隨機(jī)數(shù)字作為下標(biāo),取出字符串$strPol中的指定字符,并使用.=拼接在一起,生成字符串

在上面的代碼中,調(diào)用getRandChar(20)設(shè)置隨機(jī)字符串的長(zhǎng)度為20,因此輸出結(jié)果為:

如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符

不斷刷新,會(huì)發(fā)現(xiàn)每次輸出的不同

如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符

下面給大家介紹一下rand()函數(shù)。

rand(min,max)會(huì)返回 minmax 之間(包括邊界值)的隨機(jī)整數(shù);如果省略這兩個(gè)參數(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);
?>

分析代碼:

  • 定義了一個(gè)字符串變量$strPol,里面包含全部需要的字符;

  • 利用str_shuffle($strPol)打亂字符串,利用mt_rand(0, $max)隨機(jī)生成一個(gè)數(shù)字(數(shù)字的范圍在0~字符串$strPol的長(zhǎng)度-$length-1);

  • 使用substr()函數(shù)以隨機(jī)數(shù)字為開(kāi)始位置來(lái)截取已打亂的字符串,返回$length長(zhǎng)度的子串,這個(gè)子串就是要返回的隨機(jī)字符串。

在上面的代碼中,調(diào)用getRandChar(15)設(shè)置隨機(jī)字符串的長(zhǎng)度為15,因此輸出結(jié)果為:

如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符

不斷刷新,會(huì)發(fā)現(xiàn)每次輸出的不同

如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何通過(guò)PHP返回給定個(gè)數(shù)的隨機(jī)字符”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI