PHP图像重命名两位数

时间:2013-03-06 16:43:05

标签: php

我在一个文件夹中有图片,我想按顺序将它们重命名为两位数字。我浏览并尝试了很多解决方案,但我没有设法找到我要找的东西。我现在变得绝望了。我设法找到了这个代码,但它重命名了1到9之间的一位数字,以及从10开始的两位数字。我希望它能从01.jpg,02.jpg,03.jpg等开始计算......

<?php

$files = glob('../thumbs/*');

foreach($files as $i => $name) {
    $newname = sprintf('../thumbs/%d.jpg', $i+2);
    if ($newname != $name) {
        rename($name, $newname);
    }
}


?>

如何修改上述代码使其成为两位数?

4 个答案:

答案 0 :(得分:3)

sprintf('../thumbs/%d.jpg', $i+2);更改为sprintf('../thumbs/%02d.jpg', $i+2);

答案 1 :(得分:0)

您可以使用d%d前面的数字指定整数的宽度。

而不是sprintf('../thumbs/%d.jpg', $i+2);使用sprintf('../thumbs/%02d.jpg', $i+2);

See sprintf docs also

答案 2 :(得分:0)

我建议str_pad http://www.php.net/str_pad采用更灵活的方法:

  $files = glob('../thumbs/*');

    foreach($files as $i => $name) {
  {
         $index = str_pad($i, 2, "0", STR_PAD_LEFT);

        $newname = sprintf('../thumbs/%d.jpg', $index);
        if ($newname != $name) {
            rename($name, $newname);
        }
    }

答案 3 :(得分:-1)

<?php

$files = glob('../thumbs/*');

foreach($files as $i => $name) {
    if ($i < 10) {
        $index = "0".$i;
    }
    else {
        $index = $i;
    }
    $newname = sprintf('../thumbs/%d.jpg', $index);
    if ($newname != $name) {
        rename($name, $newname);
    }
}

&GT;