Compression de fichiers en PHP avec Zip

Hugo ETIEVANT
Dernière mise à jour : 29 mai 2003

Introduction

Cet article présente la compression de fichiers avec la librairie Zip livrée avec phpMyAdmin. Les fichiers compressés avec cet algorithme portent l'extention zip. La librairie est située dans le répertoire phpMyAdmin\libraries\zip.lib.php dont une copie est téléchargeable ici : zip.lib.sphp

Exemple

<?php
    
// appel de la classe
    
require_once('zip.lib.php');
    
// nom du fichier à ajouter dans l'archive
    
$filename 'test.txt';
    
    
// contenu du fichier
    
$fp fopen ($filename'r');
    
$content fread($fpfilesize($filename));
    
fclose ($fp);
    
    
// création d'un objet 'zipfile'
    
$zip = new zipfile();
    
// ajout du fichier dans cet objet
    
$zip->addfile($content$filename);
    
// production de l'archive' Zip
    
$archive $zip->file();
    
    
// entêtes HTTP
    
header('Content-Type: application/x-zip');
    
// force le téléchargement
    
header('Content-Disposition: inline; filename=archive.zip');
    
    
// envoi du fichier au navigateur
    
echo $archive;
?>

Tester le script

Description

Cette classe possède trois méthodes publiques :
- le constructeur zipfile()
- la méthode addfile($content, $filename) qui permet d'ajouter dans l'archive un fichier de nom $filename et de contenu $content
- la méthode file() qui retourne l'archive zip.

Attention : cette librairie ne permet d'archiver qu'un seul fichier en même temps.

Date de première publication : 29 mai 2003
Date de dernière modification : 29 mai 2003
Titre original : Compression de fichiers PHP avec Zip
Auteur : Hugo Etiévant - cyberzoide at yahoo dot fr
URL originale : http://cyberzoide.developpez.com/php4/compress/zip/index.php
Tous droits de reproduction réservés. Toute copie de ce document doit faire l'objet d'une autorisation écrite préalable.

Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2009 www.developpez.com - Legal informations.