PHP - 将文件夹中的所有文件重命名为1.ext,2.ext,3.ext

Ama*_*okM 1 php rename file

...当然,使用.ext,我的意思是,保留原来的扩展名!

现在这个问题已被问过,但奇怪的是,答案甚至都没有远程工作.对我来说,就是这样.

现在,我从这开始:

$directory = $_SERVER['DOCUMENT_ROOT'].$fileFolder.'/';
$i = 1; 
$handler = opendir($directory);
while ($file = readdir($handler)) {
    if ($file != "." && $file != "..") {
        $newName = $i . '.jpg';
        rename($file, $newName);
        $i++;
    }
}
closedir($handler);
Run Code Online (Sandbox Code Playgroud)

对我来说似乎很简单,但它不会重命名任何文件......有没有人知道出了什么问题?或者只是一个工作片段......:D

bwo*_*ebi 8

重命名时需要完整的相对/绝对名称,而不是相对于当前正在移动的目录的文件名.但readdir()只返回相对于你正在走过的目录的文件名.

$directory = $_SERVER['DOCUMENT_ROOT'].$fileFolder.'/';
$i = 1; 
$handler = opendir($directory);
while ($file = readdir($handler)) {
    if ($file != "." && $file != "..") {
        $newName = $i . '.jpg';
        rename($directory.$file, $directory.$newName); // here; prepended a $directory
        $i++;
    }
}
closedir($handler);
Run Code Online (Sandbox Code Playgroud)