&reftitle.examples;
Création d'une archive Zip
open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("Impossible d'ouvrir <$filename>\n");
}
$zip->addFromString("testfilephp.txt" . time(), "#1 Ceci est une chaîne texte, ajoutée comme testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 Ceci est une chaîne texte, ajoutée comme testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "Nombre de fichiers : " . $zip->numFiles . "\n";
echo "statut :" . $zip->status . "\n";
$zip->close();
?>
]]>
Affiche les détails de l'archive et liste son contenu
open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "Nombre de fichiers : " . $za->numFiles . "\n";
echo "statut : " . $za->status . "\n";
echo "statut du système : " . $za->statusSys . "\n";
echo "Nom du fichier : " . $za->filename . "\n";
echo "Commentaire : " . $za->comment . "\n";
for ($i=0; $i<$za->numFiles;$i++) {
echo "index : $i\n";
print_r($za->statIndex($i));
}
echo "Nombre de fichiers :" . $za->numFiles . "\n";
?>
]]>
Flux ZIP ; lit les metainformations d'un fichier OpenOffice
open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
if ($reader->nodeType == XMLREADER::ELEMENT) {
$elm = $reader->name;
} else {
if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
break;
}
if (!trim($reader->value)) {
continue;
}
$odt_meta[$elm] = $reader->value;
}
}
print_r($odt_meta);
?>
]]>
Cet exemple utilise l'ancienne API (PHP 4) ; il ouvre une archive
ZIP, lit chaque fichier del'archive et affiche son contenu.
L'archive test2.zip utilisée dans cet exemple
est une des archives de test, se trouvant dans les sources de ZZIPlib.
Exemple d'utilisation de Zip
]]>