Comment zipper un dossier en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-03-19 14:01:43
Thèmes : webmaster - zip - php
Question

J'ai un dossier avec 4 fichiers à l'intérieur, comment puis-je compresser et décompresser, au format ZIP, ce dossier et son contenu avec PHP ?

Réponse

Pour compresser un dossier, au format ZIP, en PHP, vous devez utiliser la class ZipArchive avec la fonction addFile ; et pour décompresser le fichier ZIP, vous devez utiliser la fonction extractTo.

Exemple pour zipper un dossier en PHP :

<?php 
$pathdir = "test/";  
$nomzip = "test.zip"; 
$zip = new ZipArchive;
if($zip -> open($nomzip, ZipArchive::CREATE ) === TRUE)
{ 
	$dir = opendir($pathdir); 
	while($fichier = readdir($dir)) 
	{ 
		if(is_file($pathdir.$fichier)) 
		{ 
		$zip -> addFile($pathdir.$fichier, $fichier); 
		} 
	} 
	$zip ->close(); 
} 
?> 

Exemple pour dé-zipper un dossier en PHP :

<?php 
$zip = new ZipArchive; 
$zip->open('test.zip'); 
$zip->extractTo('./'); 
$zip->close();  
?> 

Remarque : Si vous désirez zipper un dossier de manière récursive, référez-vous à ce script.