繁体   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