【问题标题】:PHP Images rename double digitsPHP图像重命名两位数
【发布时间】:2013-03-06 16:43:05
【问题描述】:

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


?>

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

【问题讨论】:

    标签: php


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      See sprintf docs also

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:
          <?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);
              }
          }
          

          ?>

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-03-17
            • 2023-04-09
            • 1970-01-01
            • 1970-01-01
            • 2020-04-27
            • 2017-04-04
            • 2015-02-24
            相关资源
            最近更新 更多