Is there a better/simpler way to find the number of images in a directory and output them to a variable?
function dirCount($dir) {
$x = 0;
while (($file
Check out the Standard PHP Library (aka SPL) for DirectoryIterator:
$dir = new DirectoryIterator('/path/to/dir');
foreach($dir as $file ){
$x += (isImage($file)) ? 1 : 0;
}
(FYI there is an undocumented function called iterator_count() but probably best not to rely on it for now I would imagine. And you'd need to filter out unseen stuff like . and .. anyway.)
Your answer seems about as simple as you can get it. I can't think of a shorter way to it in either PHP or Perl.
You might be able to a system / exec command involving ls, wc, and grep if you are using Linux depending how complex isImage() is.
Regardless, I think what you have is quite sufficient. You only have to write the function once.
I use the following to get the count for all types of files in one directory in Laravel
$dir = public_path('img/');
$files = glob($dir . '*.*');
if ( $files !== false )
{
$total_count = count( $files );
return $totalCount;
}
else
{
return 0;
}
i do it like this:
$files = scandir($dir);
$x = count($files);
echo $x;
but it also counts the . and ..