如何在PHP中将文件名重命名为随机文件名?

时间:2018-07-29 19:08:44

标签: 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())
}

我在这里有这段代码,我认为我所做的一切都正确,但是我不知道如何执行重命名功能

3 个答案:

答案 0 :(得分:1)

有一个rename函数可以完全满足您的需求。您也可以使用uniqid为文件生成唯一的名称。

答案 1 :(得分:0)

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

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

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

    rename($oldFileName, $newFileName);

}

这是其基本形式,但是在生产中,您将需要处理错误并存储新文件名等。

答案 2 :(得分:0)

改善功能

这将使用字母/数字对数组进行混洗,并获取前十个字符。

这应该比循环更有效。

$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