PHP图像重命名为两位数

PHP图像重命名为两位数,php,Php,我有一个文件夹中的图片,我想把它们按顺序重命名为两位数。我浏览并尝试了很多解决方案,但没有找到我想要的。我现在变得绝望了。我设法找到了这个代码,但它把一个数字从1改为9,把两个数字从10改为10。我想从01.jpg,02.jpg,03.jpg开始计算 <?php $files = glob('../thumbs/*'); foreach($files as $i => $name) { $newname = sprintf('../thumbs/%d.jpg', $i+2

我有一个文件夹中的图片,我想把它们按顺序重命名为两位数。我浏览并尝试了很多解决方案,但没有找到我想要的。我现在变得绝望了。我设法找到了这个代码,但它把一个数字从1改为9,把两个数字从10改为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);
    }
}


?>


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

更改
sprintf(“../thumbs/%d.jpg”,$I+2)
sprintf('../thumbs/%02d.jpg',$i+2)

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

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

我建议Stru_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);
        }
    }
  $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);
        }
    }