文件通过php重命名

时间:2016-09-06 07:48:55

标签: php xampp

我有文件重命名的代码;

    <?php
$directory= 'J:\xampp\htdocs\rename\abc';
$handler = opendir($directory);
$index = 1;
while ($file = readdir($handler)) {
    if ($file != "." && $file != "..") {
      rename($directory."/".$file, $directory."/".$index.".JPG");
        $index++;
    }

}
closedir($handler);
?>

而不是将文件重命名为1,2,3,4,.... 22 它将文件重命名为 1,10,11,12,13,14,15,.......

欢迎任何答案

1 个答案:

答案 0 :(得分:0)

您的代码似乎是正确的,如评论中所述,它可能是排序问题。为了防止这种情况,我通常用前导零“填充”我的号码:

  • 01.JPG
  • 02.JPG
  • ...
  • 10.JPG

我使用str_pad

$index = str_pad($index, 2, '0', STR_PAD_LEFT);

您的代码如下所示:

$directory= 'J:\xampp\htdocs\rename\abc';
$handler = opendir($directory);
$index = 1;
while ($file = readdir($handler)) {
    if ($file != "." && $file != "..") {
        $index = str_pad($index, 2, '0', STR_PAD_LEFT);
        rename($directory . "/" . $file, $directory . "/" . $index . ".JPG");
        $index++;
    }

}
closedir($handler);

我有不到一百个文件你应该填1个零,少于一千个填充2个零等等。

希望这有帮助