<?php

$fileArray
= array();
$filePath = '/var/www';
$filter = '#\.(gif|jpe?g|png)$#i';
$fileCount = getFileInfo($filePath, $fileArray, $filter);

echo
"File Count: $fileCount\nFile Array:\n";
print_r($fileArray);

function
getFileInfo($filePath, &$fileArray, $filter='') {
    
$leaves = 0;
    
$d = new DirectoryIterator($filePath);
    foreach (
$d as $f ) {
        
$name = $f->getFilename();
        if (
substr($name, 0, 1) == '.' )
            continue;
        elseif (
$f->isDir() ) {
            
$fileArray[$name] = array();
            
$sub_leaves = getFileInfo("$filePath/$name", $fileArray[$name], $filter);
            
$fileArray[$name]['fileCount'] = $sub_leaves;
            
$leaves += $sub_leaves;
        }
        elseif ( !
$filter || preg_match($filter, $name) ) {
            
$fileArray[] = $name;
            
$leaves++;
        }
    }
    return
$leaves;
}

?>