GlobIterator::count
(PHP 5 >= 5.3.0)
GlobIterator::count — Get the number of directories and files
Description
public int GlobIterator::count
( void
)
Gets the number of directories and files found by the glob expression.
Parameters
This function has no parameters.
Return Values
The number of returned directories and files, as an integer.
Examples
Example #1 GlobIterator::count() example
<?php
$iterator = new GlobIterator('*.xml');
printf("Matched %d item(s)\r\n", $iterator->count());
?>
The above example will output something similar to:
Matched 8 item(s)
See Also
- GlobIterator::__construct() - Construct a directory using glob
- count() - Count all elements in an array, or something in an object
- glob() - Find pathnames matching a pattern
Коментарии
As stated here https://bugs.php.net/bug.php?id=55701 the count() method can lead to errors.
For example this won't works if no files are found in the target directory :
<?php
$iterator = new \GlobIterator($ftpDirectory . '/*.*', FilesystemIterator::KEY_AS_FILENAME);
if($iterator->count()) {
foreach($iterator as $filePath) {
// do some stuff ...
}
}
?>
A workaround to this bug could be :
<?php
foreach(new \GlobIterator($ftpDirectory . '/*.*', FilesystemIterator::KEY_AS_FILENAME) as $filePath) {
// do some stuff ...
}
?>