我有很多,但在主文件夹gifs/
问题
我需要重命名所有的GIF以获得简单的相关数字。例如image (24).gif
到213.gif
(与主目录序列相关)
我使用此函数返回整个GIF列表
PHP功能
$dir = '../gifs';
function listFolderFiles($dir)
{
echo '<ol>';
foreach (new DirectoryIterator($dir) as $i => $fileInfo) {
if (!$fileInfo->isDot()) {
echo '<li>' . $fileInfo->getFilename();
if ($fileInfo->isDir()) {
listFolderFiles($fileInfo->getPathname());
}
echo " - >".$i.'</li>';
}
}
echo '</ol>';
}
listFolderFiles($dir);
//rename('picture.gif', '1.gif');
这是一些文件结构,最重要的是它们的名字都有括号......
hugs
animaton (11).gif
animaton (12).gif
animaton (13).gif
animaton (17).gif
animaton (18).gif
animaton (19).gif
animaton (22).gif
animaton (23).gif
animaton (26).gif
animaton (27).gif
animaton (29).gif
animaton (31).gif
animaton (34).gif
animaton (35).gif
animaton (4).gif
animaton (41).gif
animaton (43).gif
animaton (46).gif
animaton (49).gif
animaton.gif
bored
animaton (1).gif
animaton (13).gif
animaton (17).gif
animaton (18).gif
animaton (19).gif
animaton (20).gif
animaton (25).gif
animaton (27).gif
animaton (29).gif
animaton (31).gif
animaton (33).gif
animaton (35).gif
animaton (36).gif
animaton (40).gif
animaton (41).gif
animaton (43).gif
animaton (45).gif
animaton (49).gif
animaton (5).gif
animaton (7).gif
animaton (9).gif
wink
animaton (11).gif
animaton (12).gif
animaton (21).gif
animaton (27).gif
animaton (3).gif
animaton (35).gif
animaton (36).gif
animaton (38).gif
animaton (39).gif
animaton (4).gif
animaton (43).gif
animaton (8).gif
sleepy
animaton (11).gif
animaton (12).gif
animaton (13).gif
animaton (14).gif
animaton (16).gif
animaton (17).gif
animaton (19).gif
animaton (20).gif
animaton (21).gif
animaton (22).gif
animaton (24).gif
animaton (26).gif
animaton (27).gif
animaton (29).gif
animaton (3).gif
animaton (32).gif
animaton (34).gif
animaton (35).gif
animaton (36).gif
animaton (37).gif
animaton (38).gif
animaton (39).gif
animaton (4).gif
animaton (40).gif
animaton (41).gif
animaton (45).gif
animaton (46).gif
animaton (49).gif
animaton (5).gif
animaton (6).gif
animaton (9).gif
animaton.gif
love
animaton (1).gif
animaton (11).gif
animaton (13).gif
animaton (14).gif
animaton (17).gif
animaton (18).gif
animaton (20).gif
animaton (21).gif
animaton (24).gif
animaton (25).gif
animaton (27).gif
animaton (28).gif
animaton (29).gif
animaton (38).gif
animaton (39).gif
animaton (4).gif
animaton (40).gif
animaton (41).gif
animaton (44).gif
animaton (48).gif
animaton (5).gif
animaton (7).gif
animaton (9).gif
animaton.gif
claps
animaton (1).gif
animaton (10).gif
animaton (11).gif
animaton (12).gif
animaton (13).gif
animaton (15).gif
animaton (16).gif
animaton (17).gif
animaton (19).gif
animaton (20).gif
animaton (21).gif
animaton (22).gif
animaton (23).gif
animaton (25).gif
animaton (28).gif
animaton (3).gif
animaton (30).gif
animaton (31).gif
animaton (34).gif
animaton (35).gif
animaton (38).gif
animaton (39).gif
animaton (4).gif
animaton (40).gif
animaton (41).gif
animaton (42).gif
animaton (43).gif
animaton (44).gif
animaton (46).gif
animaton (47).gif
animaton (49).gif
animaton (5).gif
animaton (6).gif
animaton (7).gif
animaton (8).gif
scared
animaton (1).gif
animaton (10).gif
animaton (12).gif
animaton (13).gif
animaton (15).gif
animaton (16).gif
animaton (17).gif
animaton (18).gif
animaton (21).gif
animaton (24).gif
animaton (33).gif
animaton (39).gif
animaton (40).gif
animaton (46).gif
animaton (6).gif
答案 0 :(得分:1)
<强> 声明!! 强>
我已经测试了这个,但我的行为可能不是你想要的。
此函数将递归遍历您提供的目录中的每个文件和子文件夹。然后,它将在每个文件夹中按编号(连续计数)更改任何文件的名称。
我已经注释掉了rename()函数,以便在您对结果满意之前不重命名。取消注释rename()函数后,它将重命名每个文件。因此,如果它不按你想要的方式工作,那就没有回头路了。这可能会对您的文件夹/文件结构造成严重破坏。
您应备份文件,然后再继续以防万一。
$dir = '../gifs';
function listFolderFiles($dir){
$results = new DirectoryIterator($dir);
echo '<ul>';
$count = 1;
foreach($results as $fileInfo){
if($fileInfo->isFile()){
$oldFileName = $fileInfo->getPathname();
$newFileName = $fileInfo->getPath() . '/' . $count . '.gif';
//rename($oldFileName, $newFileName); //<-- Uncomment here to actually
//rename your files. Only do this when you are sure you are happy
//with the results.
echo '<li>' . 'File Old: ' . $oldFileName . ' New: ' . $newFileName . '</li>';
$count++;
}
if($fileInfo->isDir() && !$fileInfo->isDot()){
echo '<li>' . 'Folder: ' . $fileInfo->getPathname() . '</li>';
listFolderFiles($fileInfo->getPathname());
}
}
echo '</ul>';
}
listFolderFiles($dir);