Barra laterale

programmazione:php:creare_un_pacchetto_zip

Creare un pacchetto zip con PHP

Autore: Fabio Di Matteo
Ultima revisione: 21/06/2016 - 14:26

In questo articolo vedremo come creare a partire da una cartella un pacchetto compresso .zip . Di seguito la funzione che zippera' la nostra cartella ($folderSource).

function makezip($folderSource, $zipfile)
	{
		//Prende il percorso reale della cartella da zippare
		$rootPath = realpath($folderSource);
 
		// Inizilizzazioni
		$zip = new ZipArchive();
		$zip->open($zipfile, ZipArchive::CREATE | ZipArchive::OVERWRITE);
 
		//Crea un iteratore ricorsivo
		$files = new RecursiveIteratorIterator(
			new RecursiveDirectoryIterator($rootPath),
			RecursiveIteratorIterator::LEAVES_ONLY
		);
 
		foreach ($files as $name => $file)
		{
			// Escude le directory(vengono aggiunte lo automaticamente)
			if (!$file->isDir())
			{
				// Prende il percorso assoluto e anche relativo del file corrente
				$filePath = $file->getRealPath();
				$relativePath = substr($filePath, strlen($rootPath) + 1);
 
				//Potrei volere escludere i file .zip dal pacchetto
				$path_info = pathinfo($filePath);
				if ($path_info['extension']!='zip')
				{
					// Aggiunge il file corrente all'archivio
					$zip->addFile($filePath, $relativePath);
				}	
			}
		}
 
		// Il pacchetto zip viene scritto solo quando viene chiamato il metodo close()
		$zip->close();
	}	

programmazione/php/creare_un_pacchetto_zip.txt · Ultima modifica: 18/04/2018 - 15:49 (modifica esterna)