簡體   English   中英

如何在PHP中將文件名重命名為隨機文件名?

[英]How do I rename a filename to a random filename in PHP?

我有一個帶有隨機名稱的.php文件。 我想在按下特定按鈕時將其重命名為另一個隨機名稱。

function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;

}

if (isset($_SESSION['submit'])) {
    rename(, generateRandomString())
}

我在這里有這段代碼,我認為我做對了所有事情,但是我不知道如何執行重命名功能

有一個重命名功能可以完全滿足您的需求。 您也可以使用uniqid為文件生成唯一的名稱。

您需要在PHP文檔中查找named()函數: http : //php.net/manual/en/function.rename.php

if (isset($_SESSION['submit'])) {

    $oldFileName = 'foo.txt';
    $newFileName = generateRandomString() . '.txt';

    rename($oldFileName, $newFileName);

}

這是其基本形式,但是在生產中,您將需要處理錯誤並存儲新文件名等。

改善功能

這將使用字母/數字對數組進行混洗,並獲取前十個字符。

這應該比循環更有效。

$characters = array ('0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
);
shuffle($characters);
return implode("", array_slice($characters, 0,10));

https://3v4l.org/7dUiN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM