首頁  >  文章  >  後端開發  >  透過PHP傳回給定個數的隨機字符

透過PHP傳回給定個數的隨機字符

青灯夜游
青灯夜游原創
2021-08-27 17:57:232126瀏覽

在先前的文章中我們介紹了快速取得作業系統類型的三種方法,有興趣的可以點選連結查閱→《怎麼透過PHP快速取得作業系統類型(3種方法) 》。這次我們來聊聊隨機字串,看看利用PHP怎麼可以產生並隨機字串,感興趣的可以學習了解一下~

#今天本文的主題是:利用PHP產生指定個數的隨機字符,即產生指定長度的隨機字串。

下面開始正文,透過程式碼實例來給大家分享兩種方法。

方法一:利用rand()函數

<?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两个数之间的一个随机整数
	}

	return $str;
}

echo getRandChar(20);
?>

分析程式碼

  • ##定義了一個字串變量$strPol,裡麵包含全部需要的字元;

  • for循環的作用是控制隨機字串的長度;

  • 在每次循環時,利用

    rand(0, $max)隨機產生一個數字(數字的範圍在0~字串$strPol的長度-1);

  • 將隨機數字作為下標,取出字串$strPol中的指定字符,並使用

    .=拼接在一起,產生字串

在上面的程式碼中,呼叫

getRandChar(20)設定隨機字串的長度為20,因此輸出結果為:

透過PHP傳回給定個數的隨機字符

會不斷刷新,會發現每次輸出的不同

透過PHP傳回給定個數的隨機字符

#下面要跟大家介紹一下rand()函數。

rand(min,max)會傳回min 與 max 之間(包括邊界值)的隨機整數;如果省略這兩個參數,則傳回0 到RAND_MAX 之間的偽隨機整數。

方法2:substr() str_shuffle() mt_rand()函數

<?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)隨機產生一個數字(數字的範圍在0~字串$strPol的長度-$length-1);

  • 使用

    substr()函數以隨機數字為起始位置來截取已打亂的字串,傳回$length長度的子字串,這個子字串就是要回傳的隨機字串。

在上面的程式碼中,呼叫

getRandChar(15)設定隨機字串的長度為15,因此輸出結果為:

透過PHP傳回給定個數的隨機字符

不斷刷新,會發現每次輸出的不同

透過PHP傳回給定個數的隨機字符

#好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →

php影片教學

 最後給大家推薦閱讀一個經典課程《

PHP字串處理(玉女心經版)》,免費的~快來學習啊!

以上是透過PHP傳回給定個數的隨機字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn