Gz en php

Bobby Brown -  
 Bobby Brown -
Salut !

Voilà mon problème :
- je veux compresser des fichiers sur un serveur à partir d'un script PHP, en utilisant la librairie GZLib
---> simple fichier par fichier
- je veux compresser l'intégralité du contenu d'un dossier
---> dès lors, comment faire ? L'archive doit-elle avoir un entête spécifique pour qu'il soit possible de recréer l'arborescence interne du dossier, et récupérer les noms de fichier ?

Si vous aviez des pistes...

Merci par avance, et @+

4 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Le format gz ne supporte pas de multiples fichiers. Il ne peut compresser que fichier par fichier.

    Il faut rassembler les fichiers en un seul (par exemple avec TAR), puis compresser ce fichier tar.

    On obtient des fichiers .tar.gz ou .tgz
    0
    1. Bobby Brown
       
      Ah... Ca a pas l'air si simple que ce que je pensais :-(

      Si je te suis, la procédure est la suivante :
      - je liste tous les fichiers de mon répertoire
      - je les compresse individuellement en gz
      - je créé un nouveau fichier xxx.tgz

      Dès lors, comment faire pour générer le fichier TAR sur mon serveur, en gardant les diverses infos (comme les noms de fichier, ou autre) ?

      Merci par avance !
      0
    2. Bobinours Messages postés 2903 Statut Membre 504
       
      Non, ce n'est pas vraiment ça.

      TAR ne compresse pas. Ca permet de réunir plusieurs fichiers en conservant l'arborescence en un seul fichier.

      j'ai 3 fichiers :
      - /fichierA
      - /repertoire1/fichierB
      - /repertoire2/fichierC

      Je les TAR et j'aurais UN fichier : projet.tar

      Ensuite, je GZip ce fichier pour le compresser.
      0
  2. Bobby Brown
     
    Merci Johan, ton tuyau a l'air plutôt intéressant !
    Je vais essayer cette solution !

    Et encore merci à Seb
    0
  3. Bobby Brown
     
    J'ai essayé ta solution, Johan, mais elle s'avère assez instable en pratique (apache supporte pas bien l'include pear, pour des raisons que j'ignore d'ailleurs...).

    Mais à l'adresse
    http://www.phpconcept.net/pcltar-index.php3
    il y a une librairie assez phénoménale qui fonctionne à merveille.
    Et, ironie du sort, elle est du même auteur que celle de ton adresse !

    Voilà !

    @+
    0