codice:
function zip_files( $file_name = "test.zip", $files = array() ) {
$zip = new ZipArchive();
if (file_exists( $file_name )) {
unlink( $file_name );
}
if ($zip->open( $file_name, ZipArchive::CREATE ) !== TRUE) {
$zip->close();
return false;
}
if (is_array( $files )) {
foreach ( $files as $file_name_orig => $file ) {
if (! is_numeric( $file_name_orig )) {
$zip->addFile( $file, $file_name_orig );
} else {
$file_info = get_file_info( $file );
$zip->addFile( $file, $file_info [ "name" ] );
}
}
} else {
$zip->addFile( $files );
}
$zip->close();
}
$file_comprimere = array (
"file_1.pdf" => "/percorso/percorso2/file.pdf",
"file_2.doc" => "/percorso/percorso2/file.doc"
);
zip_files( "download.zip", $file_comprimere );
Adatta un pelo con le tue necessità...
Nel file zip avrai un file chiamato "file_1.pdf" che sarà il file "/percorso/percorso2/file.pdf" zippato ecc ecc. Se come chiave dell'array usi "/cartella4/file_1.pippo", nello zip avrai un file "/cartella4/file_1.pippo" che sarà il file "/percorso/percorso2/file.pdf", e anche se cartella4 non esiste (sul server) a te non importa....quando lo scompatti il software sul pc creerà eventualmente la cartella4