| Viewing file:  tutorial_example_04.php (1.39 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?phprequire 'tutorial_autoload.php';
 
 class myProgressFinder
 {
 static public function findRecursiveCallback( ezcBaseFileFindContext $context, $sourceDir, $fileName, $fileInfo )
 {
 // ignore if we have a directory, but do print a "." and sleep for
 // extra demo time
 if ( $fileInfo['mode'] & 0x4000 )
 {
 echo ".";
 usleep( 100000 );
 return;
 }
 
 // update the statistics
 $context->elements[] = $sourceDir . DIRECTORY_SEPARATOR . $fileName;
 $context->count++;
 $context->size += $fileInfo['size'];
 }
 
 static public function findRecursive( $sourceDir, array $includeFilters = array(), array $excludeFilters = array() )
 {
 // create the context, and then start walking over the array
 $context = new ezcBaseFileFindContext;
 ezcBaseFile::walkRecursive( $sourceDir, $includeFilters, $excludeFilters,
 array( 'myProgressFinder', 'findRecursiveCallback' ), $context );
 
 // collect the statistics (which we don't do anything with in this example)
 $statistics['size'] = $context->size;
 $statistics['count'] = $context->count;
 
 // return the found and pattern-matched files
 sort( $context->elements );
 return $context->elements;
 }
 }
 
 $files = myProgressFinder::findRecursive( dirname( __FILE__ ) );
 var_dump( $files );
 ?>
 
 |