Publié le 02/05/2012
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Compresser et extraire un fichier d'une archive zip

Depuis PHP 5.0, la compression de fichiers au format zip est simple à mettre en oeuvre. En effet, la class ZipArchive dispose de toutes les fonctionnalités pour compresser et extraire des fichiers.
Pour illustrer l'utilisation d'archive ZIP, la class foZipArchive et l'exemple ci-dessous montre comment:
- créer un fichier zip à partir de fichier,
- extraire un fichier à partir d'une archive zip.

Encapsulation de ZipArchive

La class est un helper pour l'obhet PHP ZipArchive. En fait, la class ci-dessous utilise les fonctions PHP et teste les résultats de compression ou d'extraction.
<?php
/**
* foZipArchive: Compresser et extraire un fichier d'une archive zip
*
* @source http://www.fobec.com/php5/1115/compresser-extraire-fichier-une-archive-zip.html
* @copyright Fobec.com
*/
class foZipArchive {
 
/**
* Compresser des fichiers dans une archive ZIP
* @param $filename
* @param array $files
* @return boolean
*/
    public function newArchive($filename, array $files) {
        $za = new ZipArchive();
        $res = $za->open($filename, ZipArchive::CREATE);
        if ($res === TRUE) {
            foreach($files as $file) {
                if (file_exists($file)) {
                    $za->addFile($file, basename($file));
                }
            }
            $za->close();
        } else {
            return FALSE;
        }
        return file_exists($filename);
    }
 
/**
* Extraire un fichier d'une archive zip
* @param $zipname
* @param $destpath
* @param $file
* @return boolean
*/
    public function extractFile($zipname, $destpath,$file) {
        $za = new ZipArchive();
        $res = $za->open($zipname);
        if ($res === TRUE) {
            $za->extractTo($destpath, $file);
            $za->close();
        } else {
            return FALSE;
        }
        return file_exists($destpath.$file);
    }
}
?>

Exemple avec un fichier zip

L'exemple ci-dessous illustre les fonctions de base d'une archive zip:
- ajouter des fichiers à un fichier zip,
- extraire des fichiers d'une archive zip.
<?php
require_once 'foziparchive.php';
 
$zf=new foZipArchive();
//Créer un fichier zip
if ($zf->newArchive('test.zip', array('image.png','video.flv'))==TRUE) {
    echo 'ok';
}
 
//extraire un fichier d'un zip
if ($zf->extractFile('test.zip', $_SERVER['DOCUMENT_ROOT'],'image.png')==TRUE) {
    echo 'ok';
}
?>

La class foZipArchive ne révolutionne pas la compression et l'extraction de fichier dans une archive Zip. L'article sert de pense-bete pour garder les fonctions zip sous la main.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
02/05/2012
Visualisation
vu 4489 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 265 articles
|BIO_PSEUDO|
Commentaires récents

Publié par claude77 dans tuto

Super application, fonctionne bien
exemple sur une image

Publié par stux dans java

Génial.. C'est exactement ce que je cherchais.

Publié par makanaki dans logiciel

je veux essayer ce logiciel pour tester les jeux de loto de chez nous

Publié par Tchat dans news

Analyses interessantes.
J'ai constate aussi des comportements etranges de Google concernant les placements des sites sur leurs requetes.
Par contre j'ai remarque que Google ne tient pl...

Publié par Axel dans java

le resultat de la fonction getMacAddress() est de type String,
ainsi pour afficher l'adresse MAC dans une JLabel

String macAddress=NetworkHardware.getMacAddress();
label.setText(macAd...