| Viewing file:  tutorial_recursive.php (949 B)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php
 require_once 'tutorial_autoload.php';
 date_default_timezone_set( "UTC" );
 
 class ArchiveContext extends ezcBaseFileFindContext
 {
 public $archive;
 public $prefix;
 }
 
 function findRecursiveCallback( ezcBaseFileFindContext $context, $sourceDir, $fileName, $fileInfo )
 {
 $path = "{$sourceDir}/{$fileName}";
 if ( is_dir( $path ) )
 {
 $path .= '/';
 }
 $context->archive->append( array( $path ), $context->prefix );
 }
 
 function appendRecursive( $archive, $sourceDir, $prefix )
 {
 $context = new ArchiveContext();
 $context->archive = $archive;
 $context->prefix = $prefix;
 ezcBaseFile::walkRecursive( $sourceDir, array(), array(), 'findRecursiveCallback', $context );
 }
 
 $archive = ezcArchive::open( "my_archive.zip", ezcArchive::ZIP );
 $archive->truncate();
 
 // the 2nd parameter is the directory, the 3rd parameter is the prefix
 appendRecursive( $archive, '/tmp/directory/', '/tmp/directory/' );
 
 ?>
 
 |