簡體   English   中英

計算子目錄php中文件的完整列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM