php - php中从二级路径获取所有zip文件

标签 php arrays file loops zip

我想从我的两层路径中获取所有 *.zip 文件,我做了两个 while 循环和 foreach 循环。我一直对数组有一些错误,例如“array_filter() [function.array-filter]:第一个参数应该是一个数组”。有人可以帮忙吗?

<?php
$dirs = array_filter(glob('*'), 'is_dir');
 while (list($key, $value) = each($dirs)) {
  $dirs_2 = array_filter(glob($value.'/*'), 'is_dir');
  while (list($key_2, $value_2) = each($dirs_2)) {
    foreach (array_filter(glob($value_2."/*.zip")) as $filename) {
        echo "$filename size " . filesize($filename) . "\n";
    }
   }
 }
?>

谢谢

最佳答案

您可以使用SplIterators为了这。 RecursiveDirectoryIterator目的是:

// create recursive directory iterator for zip folder
$directory_iterator = new RecursiveDirectoryIterator('/path/to/zip/files');´   
// required to iterate through results using foreach
$recusive_iterator = new RecursiveIteratorIterator($directory_iterator);
// filter only .zip files
$regex_iterator = new RegexIterator($recursive_iterator, '/^.*\.zip$/',
                          RegexIterator::GET_MATCH);

// iterate through results
foreach($regex_iterator as $file_info) {
    var_dump($file_info);
}

关于php - php中从二级路径获取所有zip文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202357/

相关文章:

c - fgets() 如何跟踪它在哪一行?

java - 如何在Java中将csv字节字符串转换为字节数组?

php - HTML 旁边隐藏了我的 js 导航栏

php - 如何使用 PHP 创建搜索按钮

php - 注释会使代码运行更慢吗?

javascript - 如何在 JavaScript 中求数组的平均值

javascript - 解析字符串并删除空格和换行符并转换为 json OBJECT

c - 只读来自 FILE 对象的缓冲日期

ruby - 当用 Ruby 写入文件时,为什么它有时会发生在我接下来的几行代码之后?

php - Mysql查询,更具体地说是用Laravel eloquent