Bonjour,

Actuellement, j'utilise le script suivant (Cf. ci-dessous) pour sauvegarder des éléments de mon site.
Il fonctionne à merveille mais je ne parviens pas à sauvegarder les sous-dossiers présents dans le dossier. Est-ce que quelqu'un pourrait me dire ce qu'il faut changer dans le script ci-dessous et m'indiquer où doit s'opérer le changement.
J'ai bourlingué sur différents forums et sources et je ne trouve pas la solution.
Si la sauvegarde d'un sous-répertoire est impossible en PHP me dire.

J'utilise la classe zip.lib.php et la classe mime_mail.class.php

Merci

David62

Copie du script utilisé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
// Adresse mail pour envoi de la sauvegarde
$mail = "";
// Place du répertoire concerné par la sauvegarde dans l'arborescence de votre site
// exemple : si vous souhaitez sauvegarder un dossier images se situant au même niveau que le dossier qui
// le fichier zip_repertoire.php  $rep = "../images/";
$rep = "";
// Nom explicite pour identifier le répertoire sauvegardé
// ce nom figurera dans l'objet du mail de sauvegarde reçu et permettra d'identifier précisément
// le répertoire sauvegardé
// exemple : cf/ ci-dessus  $fichiers = "images du site";
$fichiers = "";
 
// Définition de la date
function date_fr($date=0)
{
  if(!$date)
    $date=date("Y-m-d H:i:s"); //Timestamp courant par défaut
 
    $a = substr($date, 0, 4);
    $m = substr($date, 5, 2);
    $j = substr($date, 8, 2);
    $h = substr($date, 11, 2);
    $min = substr($date, 14, 2);
    $s = substr($date, 17, 2);
$datefr=$j.'/'.$m.'/'.$a;
$heurefr=$h.':'.$min;
        return array("date"=>$datefr,"heure"=>$heurefr);
}
 
$date = date_fr();
$datejour = $date["date"]." - ".$date["heure"];
 
 
 
require("zip.lib.php") ; //indiquez le chemin d'accès à la librairie
 
$zip = new zipfile() ; //on crée un fichier zip
 
if ($dir = @opendir($rep))
{
    while (($file = readdir($dir)) !== false)
    {
      if($file != ".." && $file != ".")
      {
        $filename[] = $file;
      }
    }
closedir($dir);
}
//Test a faire pour ne pas avoir d'erreur si il n'y a pas d'image dans le dossier
if(sizeof($filelist) != '0') {
  sort($filelist);
}
 
$a = 0 ;
while(count($filename)>$a)
{
$fp = fopen($rep.$filename[$a],'r') ; //on ouvre le fichier en lecture seule
$contenu = fread($fp, filesize($rep.$filename[$a])) ; //on enregistre le contenu
fclose($fp) ; //on ferme FTP
 
$zip->addfile($contenu, $filename[$a]) ; //on ajoute le fichier
$a++; //on incrémente $a
}
 
// Sauve le zip
$f2=fopen($fichiers.".zip","w");
fputs($f2,$zip -> file());
fclose($f2);
 
 
 
      // ENVOI LE ZIP EN PJ
 
      include("mail.php");
 
      sendmail("","","",$mail,"","","Sauvegarde du répertoire des $fichiers - $datejour","Sauvegarder ce fichier en incluant la date du jour et l'heure dans le nom de l'archive",$fichiers.".zip");
 
      echo "<p align='center'><b>Envoi de la sauvegarde effectué !</b></p><br>";
 
 
?>