[代码] [PHP]代码
01 |
<?php |
02 |
class RecursiveFileFilterIterator extends FilterIterator {
|
03 |
// 满足条件的扩展名
|
04 |
protected $ext = array('jpg','gif');
|
05 |
06 |
/**
|
07 |
* 提供 $path 并生成对应的目录迭代器
|
08 |
*/
|
09 |
public function __construct($path) {
|
10 |
parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
|
11 |
}
|
12 |
13 |
/**
|
14 |
* 检查文件扩展名是否满足条件
|
15 |
*/
|
16 |
public function accept() {
|
17 |
$item = $this->getInnerIterator();
|
18 |
if ($item->isFile() &&
|
19 |
in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {
|
20 |
return TRUE;
|
21 |
}
|
22 |
}
|
23 |
} |
24 |
25 |
// 实例化 |
26 |
foreach (new RecursiveFileFilterIterator('D:/history') as $item) {
|
27 |
echo $item . PHP_EOL;
|
28 |
} |