PHP 取得指定目錄檔案批次亂數重新命名

有時候需要將電腦上的檔案亂數排序,卻又不知道怎麼做

那你可以參考將所有檔案亂數命名,他的排序就會亂掉了!

就像如果你想製作一個照片的幻燈片、卻又不想讓照片依照規則去排序

那就可以用這個方式

<?php

// 取得亂數名稱
function randName() {
	$rand = '';
	for($i=0; $i<8; $i++){
		switch(rand(0,2)){
			case 0:// Number 0-9
				$rand .= chr(rand(48, 57));
			break;
			case 1:// English A-Z
				$rand .= chr(rand(65, 90));
			break;
			default:// English a-z
				$rand .= chr(rand(97, 122));
			break;
		}
	}

	return $rand;
}

// 檔案路徑(所有要更改的檔名都在此檔案同一層的files資料夾下)
$paths = 'files/';

$dir = dir($paths);
// 逐步將檔案一個一個抓出來做
while (false !== ($entry = $dir->read())) {
	// 直接過濾不必要的檔案(此目錄、上層目錄、Mac自動產生的檔案屬性文件)
	if( in_array($entry, array('.', '..', '.DS_Store')) ) continue;

	// 取得亂數檔名
	$newName = randName();

	// 取得目前檔案副檔名
	$fileExtension = pathinfo($entry, PATHINFO_EXTENSION);

	// 重新命名文件檔案名稱
    if( @rename("{$paths}{$entry}", "{$paths}{$newName}.{$fileExtension}") ) {
    	echo "{$entry} >>> {$newName}.{$fileExtension} Success. <br>";
    } else {
    	// 重新命名檔案名稱失敗
    	echo "{$entry} change name fail. <br>";
    }
}
// 關閉目錄讀取(釋放)
$d->close();

echo 'Done!';

?>

 

相連文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *