Bonsoir, j'ai un souci :
Je veux créer un .zip d'une arborescence, en récupérent seulement les fichiers xml.
Ce que j'ai fait récupère bien que les fichiers xml, mais il ne me crée pas de sources.zip...
Pouvez vous m'aider, voici le code :
(le preg match, c'est par ce que je fais un plugin dokuwiki...)
Code PHP :
<?php
if (preg_match_all ("#(\"[^\"]*\")*archiver(\"[^\"]*\")*#", $data, $dumy) > 0) {
if (($_SERVER['REMOTE_USER'] ? $INFO['userinfo']['grps'][0] : '') == 'admin'){
function creer_archive($nom, $fichiers, $commentaire = ''){
if (is_array($fichiers)) {
$zip = new ZipArchive();
if ($zip->open($nom, ZIPARCHIVE::OVERWRITE) !== TRUE) {
echo 'et de deux';
return FALSE;
}
foreach ($fichiers as $k => $f) {
if (!$zip->addFile($f)) {
echo 'false?';
return FALSE;
}else{
$zip->addfile($k);
echo 'fichier zip ++';
}
if (is_string($k)) {
$zip->setCommentName($f, $k);
echo 'fichier zip ++, c ca que je veux ';
}
}
if ($commentaire) {
$zip->setArchiveComment($commentaire);
echo 'le commentaire, normal...';
}
return $zip->close();
$renderer->doc .='fichier zip enregistr#233;'.NL;
}
echo 'ah bon';
return FALSE;
}
# Parcours du répertoire courant à la recherche des fichiers php qui constitueront la liste des fichiers à zipper
$renderer->doc .='
<form id="formulaire" method="post" action="'.$_SERVER['REQUEST_URI'].'">
<table class="inline">
<tr>
<td>Archiver les données :</td>
<td><input type="submit" id="archiver" name="archiver" value="Archiver les données"></td>
</tr>
</table>
</form>'.NL;
if( $_POST['archiver'] ){
?>
<script type="text/javascript">
//Tu rappel la page en cours via son nom
//setTimeout("document.location.href='/dokuProjet/doku.php?id=archive'", 1000);
</script>
<?php
$repertoire = realpath(dirname(__FILE__));
$fichiers = array();
$dir = opendir($repertoire);
$directory = readdir($dir);
while (($file = readdir($dir)) !== FALSE) {
if ($file == '.' or $file == '..') {
continue;
}
if (preg_match('/\.xml[45]?$/', $file)) {
$fichiers[] = $file;
}
}
creer_archive('sources.zip', $fichiers, "Les sources du tutoriel portant sur l'extension ZIP");
//or die("Echec lors de la création de l'archive");
}
}
}
?>