我在一个文件夹中有图片,我想按顺序将它们重命名为两位数字。我浏览并尝试了很多解决方案,但我没有设法找到我要找的东西。我现在变得绝望了。我设法找到了这个代码,但它重命名了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);
}
}
?>
如何修改上述代码使其成为两位数?
答案 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);
答案 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;