我想从我的两层路径中获取所有 *.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/