PHP

PHP 產生隨機亂數字串教學與範例

介紹如何在 PHP 中產生任意長度的隨機字串。

隨機的字串在 PHP 網頁程式中非常有用,常用來當成檔案名稱的後綴,避免檔名重複,或是用來當成認證用的 token。

產生隨機字串

PHP 中沒有專門產生隨機字串的函數,但我們可以自訂一個產生隨機字串的 PHP 函數,方法也很簡單:

# 產生隨機字串的 PHP 函數
function random_string($length = 32, $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') {
	if (!is_int($length) || $length < 0) {
		return false;
	}
	$characters_length = strlen($characters) - 1;
	$string = '';

	for ($i = 0; $i < $length; $i++) {
		$string .= $characters[mt_rand(0, $characters_length)];
	}
	return $string;
}

若直接呼叫 random_string 不帶任何參數,則會採用預設值,產生長度為 32 的隨機字串:

# 產生長度為 32 的隨機字串
$myRandStr = random_string();

若只有指定長度,則會採用預設的字元集合,產生指定長度的隨機字串:

# 產生長度為 8 的隨機字串
$myRandStr = random_string(8);

我們也可以同時自行指定長度與字元集合,產生特殊格式的隨機字串:

# 產生長度為 8、只包含大寫字母的隨機字串
$myRandStr = random_string(8, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");

參考資料:StackOverflow

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago