[英]count full listing of files in subdirectories php
我有這個功能,我從特定的目錄/gifs
檢索所有子文件夾文件(5000),然后重命名它們(效果很好)
問題
我想返回一個行li
的數量,以便可以用此數字重命名。我希望任何li的相關數字都從文件0到5000增加1。使用此當前函數,它返回與每個文件夾的gif數量相關的信息然后在下一個文件夾中重新命名...
$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);
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);
這是一些文件結構,大多數文件的名稱都有括號...
hugs
1 animaton (11).gif
2 animaton (12).gif
3 animaton (13).gif
4 animaton (17).gif
5 animaton (18).gif
6 animaton (19).gif
7 animaton (22).gif
8 animaton (23).gif
9 animaton (26).gif
10 animaton (27).gif
11 animaton (29).gif
12 animaton (31).gif
13 animaton (34).gif
14 animaton (35).gif
15 animaton (4).gif
16 animaton (41).gif
17 animaton (43).gif
18 animaton (46).gif
19 animaton (49).gif
20 animaton.gif
bored
21 animaton (1).gif
22 animaton (13).gif
23 animaton (17).gif
24 animaton (18).gif
25 animaton (19).gif
26 animaton (20).gif
27 animaton (25).gif
28 animaton (27).gif
29 animaton (29).gif
30 animaton (31).gif
31 animaton (33).gif
32 animaton (35).gif
33 animaton (36).gif
34 animaton (40).gif
35 animaton (41).gif
36 animaton (43).gif
37 animaton (45).gif
38 animaton (49).gif
39 animaton (5).gif
40 animaton (7).gif
41 animaton (9).gif
wink
42 animaton (11).gif
43 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
每次執行該函數時, $count
都設置為1。要解決此問題,請在函數外部定義$count
並使用global $count;
在函數內部告訴PHP您希望$count
引用函數范圍之外的變量。
這是代碼
$dir = 'gifs';
$count = 1;
function listFolderFiles($dir){
global $count;
$results = new DirectoryIterator($dir);
echo '<ul>';
foreach($results as $fileInfo){
if($fileInfo->isFile()){
$oldFileName = $fileInfo->getPathname();
$newFileName = $fileInfo->getPath() . '/' . $count . '.gif';
//rename($oldFileName, $newFileName);
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.