在php中随机重命名文件

时间:2018-10-18 20:37:11

标签: php random rename

我有一个包含1000张图像的文件夹,我需要将它们从1.jpg随机重命名为1000.jpg,每次运行脚本时它必须完全是随机的。 我只需要每次运行脚本时1.jpg都不同即可。

到目前为止,我要做的就是以下代码。 请帮忙。谢谢

<?php

if (file_exists('Image00001.jpg'))
{
$renamed= rename('Image00001.jpg', '1.jpg');

if ($renamed)
{
echo "The file has been renamed successfully";
}
else
{
echo "The file has not been successfully renamed";
}
}
else
{
echo "The original file that you want to rename does not exist";
}

?>

1 个答案:

答案 0 :(得分:2)

检查此内容(如果有帮助)。我尝试了一下,它可以工作。创建一个php文件并复制代码,然后在同一目录中创建一个名为 files 的文件夹,并使用扩展名为 .jpg 的图像填充它,然后运行php文件。这是精炼的代码。让我知道这是否适合您。

<?php
$dir    = 'files/'; //directory
$files1 = scandir($dir);
shuffle($files1); //shuffle file names
$i           = 1; //initialize counter
//store existing numbered files in array
$exist_array = array();
while (in_array($i . ".jpg", $files1)) {
    array_push($exist_array, $i . ".jpg");
    $i++;
}
foreach ($files1 as $ff) {
    if ($ff != '.' && $ff != '..') // check for current or parent directory, else it will replace the directory name
        {
        // check whether the file is already numbered
        if (in_array($ff, $exist_array)) {
            continue;
        }
        //next 3 lines is proof of random rename
        echo $ff . "         --->     ";
        rename($dir . $ff, $dir . $i . ".jpg");
        echo $i . ".jpg<br/>";
        $i++;
    }
}
?>