我有一个包含多个图像的文件夹。
该文件夹为photos_1/130730782
图像是
.jpg
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
我需要像这样重命名文件
.jpg = 1.jpg
1.jpg = 2.jpg
2.jpg = 3.jpg
3.jpg = 4.jpg
4.jpg = 5.jpg
5.jpg = 6.jpg
6.jpg = 7.jpg
我正在使用此代码:
$sysid = '130730782';
$dir = 'photos_1/'.$sysid;
$myPhotoCount = iterator_count(new DirectoryIterator($dir)) - 1;
for($i=0; $i<=count($myPhotoCount); $i++){
$x = $i + 1;
if($i == 0){
rename("{$dir}/.jpg", "{$dir}/1.jpg");
}else{
rename("{$dir}/{$i}.jpg", "{$dir}/{$x}.jpg");
}
}
我收到此错误:
警告:重命名(photos_1 / 130730782 / .jpg,photos_1 / 130730782 / 1.jpg) [function.rename]:没有这样的文件或目录 第18行/home/content/85/6608485/html/McCloskey/rename.php
警告:重命名(photos_1 / 130730782 / 1.jpg,photos_1 / 130730782 / 2.jpg) [function.rename]:没有这样的文件或目录 第20行/home/content/85/6608485/html/McCloskey/rename.php
我知道文件存在,我在这里做错了什么?
答案 0 :(得分:4)
您需要以相反的顺序重命名这些文件。
如果您将.jpg重命名为1.jpg,那么原始1.jpg可能会丢失/覆盖。
从最高编号开始,然后向后退。
答案 1 :(得分:1)
如下所示:
.jpg --> 1.jpeg
1.jpg --> 2.jpeg
依旧......
它不会对您的文件进行任何更改,因为 JPG和JPEG相同并且不会丢失/覆盖。
答案 2 :(得分:0)
我最终使用copy()将文件复制到另一个目录并在此过程中重命名。