当前位置: 首页 > 面试题库 >

PHP获取包含子目录的文件列表

蒯坚白
2023-03-14
问题内容

我正在尝试检索目录中的所有图像,包括所有子目录。我目前正在使用

$images = glob("{images/portfolio/*.jpg,images/portfolio/*/*.jpg,images/portfolio/*/*/*.jpg,images/portfolio/*/*/*/*.jpg}",GLOB_BRACE);

这可行,但是结果是:

images/portfolio/1.jpg
images/portfolio/2.jpg
images/portfolio/subdirectory1/1.jpg
images/portfolio/subdirectory1/2.jpg
images/portfolio/subdirectory2/1.jpg
images/portfolio/subdirectory2/2.jpg
images/portfolio/subdirectory1/subdirectory1/1.jpg
images/portfolio/subdirectory1/subdirectory1/2.jpg

我希望它一次执行整个目录分支,因此结果是:

images/portfolio/1.jpg
images/portfolio/2.jpg
images/portfolio/subdirectory1/1.jpg
images/portfolio/subdirectory1/2.jpg
images/portfolio/subdirectory1/subdirectory1/1.jpg
images/portfolio/subdirectory1/subdirectory1/2.jpg
images/portfolio/subdirectory2/1.jpg
images/portfolio/subdirectory2/2.jpg

非常感谢您的帮助,欢呼!

附注:如果我只需将所有子目录都包含在投资组合下,而不必用通配符具体说明每个目录,那也很好。


问题答案:

从示例

if ( ! function_exists('glob_recursive'))
{
    // Does not support flag GLOB_BRACE        
   function glob_recursive($pattern, $flags = 0)
   {
     $files = glob($pattern, $flags);
     foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir)
     {
       $files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags));
     }
     return $files;
   }
}


 类似资料:
  • 请给我一个解决方案,获取不包含文件"输入..."使用PHP的目录名称。我的文件夹结构是这样的: 因为Dir1和Dir3有“input…”文件,所以它将得到name=dir2,dir4,dir5。我有代码,但它不工作。请帮我修一下!

  • 问题内容: 我一直在尝试找出列出目录中包含的所有文件的方法。我用php不够好,无法自己解决它,所以希望这里有人可以帮助我。 我需要一个简单的PHP脚本,它将图像目录中包含的所有文件名加载到数组中。任何帮助将不胜感激,谢谢! 问题答案: 尝试glob 就像是:

  • 我试图显示woocommerce产品子类别的列表,包括任何子类别(的子类别)-如何修改以下代码来执行此操作-其中显示cat ID 51中的类别列表:

  • 问题内容: 假设我有一个URL:我想获得目录下所有文件/目录的列表。 我正在使用Java 5。 我可以使用此程序http://www.httrack.com/获得dir的列表,但是使用Java我不知道是否可行。 有谁知道如何用Java获得它?或者,如果Java无法执行,该程序将如何完成工作? 问题答案: 有一些条件: 服务器必须已启用目录列表,以便您查看其内容。 我没有办法(没有API或HTTP动

  • 问题内容: 在PHP中可以包含脚本目录吗? 即代替: 是否有类似的东西: 似乎找不到找到针对特定类的大约10个子类的集合的好方法。 问题答案:

  • 问题内容: 使用此代码 返回特定目录中文件夹和文件的总和,而不用关心 子目录 。我想获取目录及其子目录中所有文件的数量。 PS:返回所有文件和文件夹的总和几乎无关紧要。 任何帮助表示赞赏,谢谢 问题答案: 试试这个。 它可能会帮助您。