array|string $paths:
array|string $suffixes:
array|string $prefixes:
array $exclude:
AppendIterator
public function getFileIterator($paths, $suffixes = '', $prefixes = '', array $exclude = array()) {
if (is_string($paths)) {
$paths = array(
$paths,
);
}
$_paths = array();
foreach ($paths as $path) {
if ($locals = glob($path, GLOB_ONLYDIR)) {
$_paths = array_merge($_paths, $locals);
}
else {
$_paths[] = $path;
}
}
$paths = $_paths;
unset($_paths);
if (is_string($prefixes)) {
if ($prefixes != '') {
$prefixes = array(
$prefixes,
);
}
else {
$prefixes = array();
}
}
if (is_string($suffixes)) {
if ($suffixes != '') {
$suffixes = array(
$suffixes,
);
}
else {
$suffixes = array();
}
}
$iterator = new AppendIterator();
foreach ($paths as $path) {
if (is_dir($path)) {
$iterator
->append(new File_Iterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)), $suffixes, $prefixes, $exclude, $path));
}
}
return $iterator;
}