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.