我有文件重命名的代码;
<?php
$directory= 'J:\xampp\htdocs\rename\abc';
$handler = opendir($directory);
$index = 1;
while ($file = readdir($handler)) {
if ($file != "." && $file != "..") {
rename($directory."/".$file, $directory."/".$index.".JPG");
$index++;
}
}
closedir($handler);
?>
而不是将文件重命名为1,2,3,4,.... 22 它将文件重命名为 1,10,11,12,13,14,15,.......
欢迎任何答案
答案 0 :(得分:0)
您的代码似乎是正确的,如评论中所述,它可能是排序问题。为了防止这种情况,我通常用前导零“填充”我的号码:
我使用str_pad:
$index = str_pad($index, 2, '0', STR_PAD_LEFT);
您的代码如下所示:
$directory= 'J:\xampp\htdocs\rename\abc';
$handler = opendir($directory);
$index = 1;
while ($file = readdir($handler)) {
if ($file != "." && $file != "..") {
$index = str_pad($index, 2, '0', STR_PAD_LEFT);
rename($directory . "/" . $file, $directory . "/" . $index . ".JPG");
$index++;
}
}
closedir($handler);
我有不到一百个文件你应该填1个零,少于一千个填充2个零等等。
希望这有帮助