compresser un répertoire ???

compresser un répertoire ??? - PHP - Programmation

Marsh Posté le 16-09-2002 à 03:19:01    

Salut,
 
Je cherche comment faire pour compresser un répertoire contenant divers fichiers et sous-répertoire (par exemple à la maniére d'un winzip...) avec php.
Merci pour votre aide.
 
@+
 
Dead.metheny

Reply

Marsh Posté le 16-09-2002 à 03:19:01   

Reply

Marsh Posté le 16-09-2002 à 16:30:49    

system ("tar czf tonfichier.tgz /le/rep/à/zipper" );
 
ca marcherais pas ca ?

Reply

Marsh Posté le 16-09-2002 à 16:39:18    

avec une fonction system() ???

Reply

Marsh Posté le 16-09-2002 à 16:46:16    

ben ouai, la fonction system, elle sert a lancer une commande sur le serveur.
 
http://www.php.net/manual/en/function.system.php

Reply

Marsh Posté le 16-09-2002 à 17:35:25    

www.nexen.net
 
Je sais pas si tu trouveras de quoi faire ce que tu dis mais en tout cas il y aura pour compresser ts les fichiers d'un répertoires.

Reply

Marsh Posté le 16-09-2002 à 17:37:49    

Reply

Marsh Posté le 16-09-2002 à 18:50:15    

ok merci j'ai trouvé.
avec le module zlib c'est ok.
 
@+
 
dead.metheny

Reply

Marsh Posté le 17-09-2002 à 19:59:29    

il y a ceci mais j'ai pas testé :
 
 

Code :
  1. /*
  2. Ce script est un utilitaire de sauvegarde de l'intégralité d'un site internet
  3. Il permet de transférer sur un compte FTP l'intégralité des fichiers, ainsi
  4. que vos bases de données MySQL
  5. Chaque répertoire est sauvegardé individuellement dans un fichier compressé repertoire.tgz
  6. Le répertoire racine est sauvegardé en racine.tgz
  7. la(les) base(s) MySQL sont sauvegardée dans un fichier sqlbackup.tgz
  8. Ce script ne peut fonctionner que si votre hébergeur accepte la connexion à un FTP distant,
  9. et qu'il accepte de lancer des commandes système exec(). AUTANT DIRE QUE CELA  
  10. ELIMINE LA QUASI TOTALITE DES HEBERGEURS GRATUITS (Free, Multimania). Par contre,
  11. un compte gratuit peut faire l'affaire pour le ftp de destination.
  12.  
  13. Pour info, j'utilise se scipt pour sauvegarder un script hébergé sur OVH à destination
  14. d'un compte ftp FREE.
  15. La sauvegarde d'un petit site de 17Mo avec une base de 800Ko met un peu moins de 30 secondes.
  16. Si problême :  
  17.  
  18. Jérôme HUBERT
  19. jerome.hubert@jurasudfoot.com
  20. www.jurasudfoot.com  Le site des supporters de Jura Sud Football !
  21. www.phpleague.fr.st  gestion de championnats en PHP/MySQL
  22. ----------------------------------------------------------------------
  23. PARAMETRES DE CONFIGURATION
  24. J'ai intentionnellement laissé mes données (sauf passwords)
  25. pour que chacun s'y retrouve
  26. --------------------------------------------------------------------*/
  27. $local_path= "/home/jurasudff/www";     //chemin local sur votre serveur de la racine du site sans / à la fin
  28. $host= "sql1.ovh.net";        // votre serveur MySQL
  29. $base1= "jurasudffjsf";        //nom base MySQl N°1
  30. $base2= "jurasudffnuke";       // nom base MySQL N°2
  31. $user1= "jurasudffjsf";        //utilisateur base MySQl N°1
  32. $user2= "jurasudffnuke";       // utilisateur base MySQL N°2
  33. $passwd1 = "****";         //Password base MySQL N°1
  34. $passwd2= "****";          //Password base MySQL N°2
  35. $ftp_server = "ftpperso.free.fr";     //serveur ftp de destination
  36. $ftp_user_name = "jurasudfoot";     // identifiant ftp
  37. $ftp_user_pass = "manonleo";     //password ftp
  38. /*--------------------------------------------------------------------
  39. FIN DES PARAMETRES DE CONFIGURATION
  40. --------------------------------------------------------------------*/
  41. //CREATION TEMPORAIRE d'UN REPERTOIRE D'ACCUEIL POUR LES FICHIERS MYSQL
  42. exec("mkdir $local_path/sql" );
  43. //SAUVEGARDE DES BASES MYSQL --------------------------------------------
  44. exec("mysqldump -h$host -u$user1 -p$passwd1 $base1> sqlbackup/$base1.sql" );
  45. // EFFACEZ OU COMMENTEZ CETTE LIGNE SI VOUS N'AVEZ QU'UNE BASE MySQL
  46. @exec("mysqldump -h$host -u$user2 -p$passwd2 $base2> sqlbackup/$base2.sql" );
  47. //------------------------------------------------------------------------
  48. // CONNEXION FTP ---------------------------------------------------------
  49. $type = "FTP_ASCII";
  50.    echo "type de connexion $type <BR>";
  51.    $conn_id = ftp_connect("$ftp_server" );
  52.    $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass" );
  53.    if ((!$conn_id) || (!$login_result))
  54.       {
  55.    echo "La connexion FTP a échoué!";
  56.  echo "Tentative de connexion à $ftp_server en tant que $ftp_user_name";
  57.  die;
  58.  }
  59.  else
  60.  {
  61.  echo "Connecté à $ftp_server, avec $ftp_user_name <BR>";
  62.  }
  63. // Ouverture du répertoire racine
  64. $link=opendir($local_path);
  65. while (gettype($name=readdir($link))==string  )
  66. {
  67. if (is_dir($name))
  68. {
  69. if ($name==".." )
  70. {continue;}
  71. $name=str_replace (".", "", $name);
  72. // SAUVEGARDE DES FICHIERS *.* DU REPERTOIRE RACINE
  73. if ($name=="" )
  74. {exec("tar cz *.* > racine.tgz" );
  75. $name="racine";
  76.  }
  77. //SAUVEGARDE DE CHAQUE SOUS REPERTOIRE DE LA RACINE
  78. if ($name<>"" )
  79. {exec("tar cz ".$name."/* > ".$name.".tgz" );
  80. }
  81. echo "<b>REPERTOIRE : ".$name."<br></b>";
  82.    $destination_file = $name.".tgz";
  83.    $source_file =  $name.".tgz";   
  84. // TRANSFERT FTP, C'EST LA QUE C'A BLOQUE SOUVENT......    
  85. $upload = ftp_put($conn_id, "$destination_file", "$source_file", $type);  
  86. if (!$upload)  
  87.       {  
  88.       echo "<h2 color=\"red\">Le téléchargement FTP échoué!</h2><hr>";
  89.       } else {
  90.       echo "Téléchargement de ".$source_file." sur ".$ftp_server."<b> ".$dir."</b> en ".$destination_file." <b><font color=#00FF00 size=3>OK</font></b><hr>";
  91.       }
  92. // EFFACEMENT DES FICHIERS ET REPERTOIRES TEMPORAIRE
  93. exec("rm *.tgz" );
  94. exec("rm $local_path/sqlbackup/*.sql" );
  95. exec("rmdir $local_path/sql" );
  96. }
  97. // ON NE COMPRESSE ET TRANSFERE QUE DES REPERTOIRES (et leur contenu), PAS DES FICHIERS SOLITAIRES
  98. if (is_file($name))
  99. {continue;}
  100. }
  101. // FERMETURE DU REPERTOIRE RACINE, DE LA CONNEXION FTP
  102. closedir($link);
  103. ftp_quit($conn_id);
  104. ?>


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 17-09-2002 à 20:18:29    

t509 a écrit a écrit :

 

Code :
  1. /*-----------------------------
  2. PARAMETRES DE CONFIGURATION
  3. J'ai intentionnellement laissé mes données (sauf passwords)
  4. pour que chacun s'y retrouve
  5. ------------------------------*/
  6. $ftp_server = "ftpperso.free.fr";     //serveur ftp de destination
  7. $ftp_user_name = "jurasudfoot";     // identifiant ftp
  8. $ftp_user_pass = "manonleo";     //password ftp





quoted:D


Message édité par --greg-- le 17-09-2002 à 20:18:54

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 18-09-2002 à 01:01:30    

J'avais vu, mais je ne modifie pas un code source mis gentillement à dispo ... :D


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 18-09-2002 à 01:01:30   

Reply

Marsh Posté le 18-09-2002 à 01:36:43    

t509 a écrit a écrit :

J'avais vu, mais je ne modifie pas un code source mis gentillement à dispo ... :D



j'adore "j'ai laissé expres mes données, sauf les mots de passe", et 10lignes plus loin... oh un mot de passe!
 
edit: ha tiens ça marche pas:(


Message édité par --greg-- le 18-09-2002 à 01:37:28

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed