Comment zipper un dossier en PHP ?
Réponses rédigées par Antoine
Dernière mise à jour : 2020-03-19 14:01:43
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.