0

フォルダに写真があり、2桁の数字に順番に名前を変更したいと思います。私はたくさんの解決策を閲覧して試しましたが、探しているものを見つけることができませんでした。私は今必死になりました。このコードを見つけることができましたが、1桁が1から9に、2桁が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);
    }
}


?>

上記のコードを2桁に変更するにはどうすればよいですか?

4

4 に答える 4

3

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

于 2013-03-06T16:45:08.643 に答える
0

dinの前の数字を使用して、整数の幅を指定できます%d

sprintf('../thumbs/%d.jpg', $i+2);使用する代わりにsprintf('../thumbs/%02d.jpg', $i+2);

sprintf のドキュメントも参照してください

于 2013-03-06T16:47:13.170 に答える
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);
        }
    }
于 2013-03-06T16:48:59.423 に答える
-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);
    }
}

?>

于 2013-03-06T16:45:23.513 に答える