As seen in example above, first parameter in the GlobIterator constructor is not a path but a pattern which listed filenames should match.
(PHP 5 >= 5.3.0, PHP 7)
GlobIterator::__construct — Construct a directory using glob
$path
[, int $flags
= FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO
] )Constructs a new directory iterator from a glob expression.
path
The path of the directory.
flags
Option flags, the flags may be a bitmask of the FilesystemIterator constants.
Example #1 GlobIterator example
<?php
$iterator = new GlobIterator('*.dll', FilesystemIterator::KEY_AS_FILENAME);
if (!$iterator->count()) {
echo 'No matches';
} else {
$n = 0;
printf("Matched %d item(s)\r\n", $iterator->count());
foreach ($iterator as $item) {
printf("[%d] %s\r\n", ++$n, $iterator->key());
}
}
?>
以上例程的输出类似于:
Matched 2 item(s) [1] php5ts.dll [2] php_gd2.dll
As seen in example above, first parameter in the GlobIterator constructor is not a path but a pattern which listed filenames should match.
GlobIterator doesn't have a way to support GLOB_BRACE!
<?php
$iterator = new GlobIterator(getcwd. '/*.{php,txt}'); // generate an empty array
?>