La version initiale est fournie avec PHP 4 et est disponible
dans PECL depuis la version 1.0, voir
http://pecl.php.net/package/zip. Elle ne peut que lire les archives ZIP.
Cette version utilisent les fonctions de la bibliothèque
ZZIPlib de Guido Draheim.
Vous devez avoir d'installer la bibliothèque ZZIPlib en version >= 0.10.6.
La nouvelle version est fournie avec PHP 5.2.0 ou suivant et est disponible
dans PECL depuis la version 1.1.0 ou suivant. Elle ne nécessite pas
de bibliothèque externe. Elle peut lire et écrire des archives ZIP
lorsqu'elle est utilisée avec PHP 5.1 ou suivant et elle ne peut
que les lire lorsqu'elle est utilisée avec PHP 4.
Cette extension PECL
n'est pas intégrée à PHP.
Des informations sur l'installation de ces extensions PECL
peuvent être trouvées dans le chapitre du manuel intitulé Installation
des extensions PECL. D'autres informations comme les notes sur les nouvelles
versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs
ainsi qu'un CHANGELOG, peuvent être trouvées ici :
http://pecl.php.net/package/zip.
Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support
ZIP en utilisant l'option de configuration --with-zip[=DIR]
où [DIR] est le préfixe de l'installation de la bibliothèque
ZZIPlib.
Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le
support ZIP en utilisant l'option de configuration
--enable-zip. Ceci ne nécessite pas
de bibliothèque externe.
Note :
Vous pouvez utiliser la version PECL avec PHP 4. Pour cela, vous devez désactiver
l'extension ZIP interne ou bien recompiler PHP sans celle-ci.
Les utilisateurs de Windows doivent activer la bibliothèque
php_zip.dll dans le php.ini pour
pouvoir utiliser ces fonctions.
En PHP 4, cette bibliothèque DLL
se trouve dans le dossier extensions/ avec les binaires PHP
pour Windows téléchargées.
Vous pouvez télécharger ces bibliothèques
DLL pour ces extensions PECL
depuis la page de téléchargement de PHP
sous sur la page http://snaps.php.net/.
Note :
Le support ZIP avant PHP 4.1.0 est expérimental. Cette section
traite de l'extension ZIP tel qu'elle existe en PHP 4.1.0 et suivant.
Les utilisateurs de WIndows doivent activer la bibliothèque
php_zip.dll dans le php.ini pour
pouvoir utiliser ces fonctions.
En PHP 4, cette bibliothèque DLL
se trouve dans le dossier extensions/ avec les binaires PHP
pour Windows téléchargées.
Vous pouvez télécharger ces bibliothèques
DLL pour ces extensions PECL
depuis la page de téléchargement de PHP
sous sur la page http://snaps.php.net/.
Il y a deux types de ressources utilisées dans le module ZIP.
La première représente le dossier ZIP pour l'archive ZIP, la seconde,
l'entrée ZIP pour les entrées de l'archive.
Ces constantes sont définies par cette
extension, et ne sont disponibles que si cette extension a été compilée avec
PHP, ou bien chargée au moment de l'exécution.
ZipArchive utilise des constantes de classe. Il y a trois types de constantes,
les flags (FL_), les erreurs (ER_) ou les modes (no prefix).
$zip = new ZipArchive(); $filename = "./test112.zip";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) { exit("cannot open <$filename>\n"); }
$zip->addFromString("testfilephp.txt" . time(), "#1 Ceci est un test, ajouté en tant que fichier testfilephp.txt.\n"); $zip->addFromString("testfilephp2.txt" . time(), "#2 Ceci est un test, ajouté en tant que fichier testfilephp2.txt.\n"); $zip->addFile($thisdir . "/too.php","/testfromfile.php"); echo "numfiles: " . $zip->numFiles . "\n"; echo "status:" . $zip->status . "\n"; $zip->close(); ?>
Exemple 2. Affiche les détails de l'archive et liste son contenu
Cet exemple utilise l'ancienne API (PHP 4), il ouvre une archive ZIP,
lit chaque fichier de l'archive et affiche leurs contenus.
L'archive test2.zip utilisé dans cet exemple
est une des archives de test des sources de ZZIPlib.