Je parlais fin octobre de la
gestion des fichiers Zip via PHP. Cette fois çi, je suis tomber sur une batterie de scripts permettant de gérer les fichiers GNU TAR (*.tar) et GNU TAR compressé (*.tar.gz). Il s'agit de PclTar. A noter que la même librairie PclZip existe pour la gestion des fichiers Zip.
Développée par PhpConcept, PclTar permet de manipuler des fichiers tar très simplement. En seulement quelques lignes de codes on peut faire toutes les opérations sur ces fichiers. Voici brut de pomme les fonctionnalités :
- La création d'une archive :
- Création d'une archive au format GNU TAR ou GNU TAR compressée par GNU ZIP (gzip lib)
- L'ajout optionnel d'une liste de fichiers ou de dossiers lors de la création de l'archive.
- La possibilité de manipuler les chemins mémorisés dans l'archive pour chaque fichier/dossier. Cela permet d'extraire ensuite l'archive dans un dossier qui n'est pas celui d'origine des fichiers.
- Ajout de fichiers ou dossiers :
- Ajout d'une liste de fichiers ou d'une liste de dossiers dans une archive déjà existante,
- Le chemin des fichiers/dossiers mémorisé peut être manipulé en ajoutant un chemin ou en supprimant une partie de celui d'origine. Cela permet d'extraire ensuite l'archive dans un dossier qui n'est pas celui d'origine des fichiers.
- L'extraction :
- Extraction de l'ensemble de l'archive
- Extraction partielle des fichiers ou dossiers de l'archive en spécifiant une liste de fichiers ou de dossiers
- Extraction partielle des fichiers ou dossiers de l'archive en spécifiant les index des fichiers ou dossiers à extraire
- L'extraction est effectuée dans le dossier courant ou un dossier qui peut être spécifié
- Les chemins relatifs des fichiers archivés sont conservés lors de l'extraction. Il est cependant aussi possible d'ignorer une partie du chemin mémorisé.
- La liste du contenu :
- Permet la récupération de la liste des fichiers contenus dans l'archive et leurs propriétés.
- La suppression de fichiers/dossiers :
Permet de supprimer de l'archive une liste de fichiers/dossiers
- Mise à jours :
Mise à jour d'une liste de fichiers/dossiers présents dans l'archive : Si le fichier existe dans l'archive et été modifié plus récemment, il remplace alors le fichier mémorisé dans l'archive; Si le fichier n'existait pas dans l'archive, il est ajouté à la fin de l'archive.
- Concaténation d'archives :
Ajout du contenu d'une archive à la fin de celui d'une autre archive.
Chaque archive peut avoir des options de compression différents.
Voici un exemple de code php pour 2 fonctionnalités : Création et ajout de fichier.
<?php
/* Inclusion de la librairie */
include ("lib/pclerror.lib.php");
include ("lib/pcltrace.lib.php");
include ("lib/pcltar.lib.php");
/* L'archive créée portera le nom de test.tar.gz
on utilise donc ici GNU Tar Compressé */
$archive = "test.tar.gz";
/* Tableau contenant les fichiers à ajouter à l'archive. */
$p_list = array("fichier1.txt", "fichier2.doc");
/* On créer l'archive */
PclTarCreate($p_tarname, $p_list, '', '', '');
/* On ajoute à l'archive le fichier fichier3.pdf */
$p_list1 = "fichier3.pdf";
PclTarAddList($p_tarname, $p_list1, '', '', '');
?>
Pour les autres fonctionnalités je vous laisse découvrir par vous même.
Manuel PclTar
Site de PhpConcept