2013-03-06 73 views
0

我有一個文件夾中的圖片,我想將它們順序重命名爲兩位數字。我瀏覽並嘗試了很多解決方案,但我無法找到所需的東西。我現在絕望了。我設法找到這個代碼,但它重命名從1到9的一個數字,以及從10開始的兩個數字。我會把它想且具出發01.JPG,02.JPG,03.jpg,等...PHP圖像重命名兩位數

<?php 

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

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


?> 

如何修改上面的代碼,使之成爲雙位數?

回答

3

變化sprintf('../thumbs/%d.jpg', $i+2);sprintf('../thumbs/%02d.jpg', $i+2);

+0

優秀。謝謝 :-) – MtDemonics 2013-03-06 16:59:02

-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); 
    } 
} 

?>

0

可以指定使用%dd前述中數字的整數的寬度。

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

See sprintf docs also

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); 
     } 
    }