Изображения 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); } } ?> 

Как я могу изменить приведенный выше код, чтобы сделать его двойной цифрой?

Измените 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);

См. Также документы sprintf

Я бы предложил 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); } } 
 <?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); } } 

?>