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/' ); ?>