Creare un file ZIP con PHP


Creare un file ZIP con PHP

La creazione degli archivi ZIP con PHP può essere altrettanto semplice come crearli sul vostro desktop. La classe PHP ZIP fornisce tutte le funzionalità di cui hai bisogno. Per rendere il processo un pò più veloce, è stata codificata una funzione create_zip semplice da usare sui vostri progetti.

PHP

/* creates a compressed zip file */
function create_zip($files = array(),$destination = '',$overwrite = false) {
	//if the zip file already exists and overwrite is false, return false
	if(file_exists($destination) && !$overwrite) { return false; }
	//vars
	$valid_files = array();
	//if files were passed in...
	if(is_array($files)) {
		//cycle through each file
		foreach($files as $file) {
			//make sure the file exists
			if(file_exists($file)) {
				$valid_files[] = $file;
			}
		}
	}
	//if we have good files...
	if(count($valid_files)) {
		//create the archive
		$zip = new ZipArchive();
		if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
			return false;
		}
		//add the files
		foreach($valid_files as $file) {
			$zip->addFile($file,$file);
		}
		//debug
		//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;

		//close the zip -- done!
		$zip->close();

		//check to make sure the file exists
		return file_exists($destination);
	}
	else
	{
		return false;
	}
}

Utilizzo

$files_to_zip = array(
	'preload-images/1.jpg',
	'preload-images/2.jpg',
	'preload-images/5.jpg',
	'kwicks/ringo.gif',
	'rod.jpg',
	'reddit.gif'
);
//if true, good; if false, zip creation failed
$result = create_zip($files_to_zip,'my-archive.zip');


La funzione accetta un array di file, il nome del file di destinazione. La funzione restituisce true se è stato creato il file, false se il processo contiene qualche problema.

reference

Rate this post

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Hai bisogno di aiuto personalizzato con qualcosa che non è documentato qui? Richiedi assistenza
Iscriviti alla nostra newsletter

Iscriviti alla nostra newsletter

Iscriviti alla nostra mailing list per ricevere le ultime notizie e gli aggiornamenti dal nostro team.

You have Successfully Subscribed!