inizar Posté 14 Juin 2008 Partager Posté 14 Juin 2008 Bonsoir , j'ai réalisé un petit code qui permet de sauvgardé ma base mais je voudrais que au lieu d'avoir mon fichier format sql dans le répertoire de le télechargé en format zip (j'ai besoin de zip.lib ??) voila mon code si vous pouvez m'aider : function svg_bdd($host,$user,$pass,$bdd) { //on se connecte à la baseinclude('../../inc/in.php'); //on récupère les tables de la base $tables = mysql_list_tables($bdd); while ($donnees = mysql_fetch_array($tables)) { //tant qu'on trouve des résultats, on créé un tableau $table = $donnees[0]; //on affecte la var table avec le premier élément du tableau qui correspond au nom de la table $res = mysql_query("SHOW CREATE TABLE ".$table); if($res){ $insertions = ""; $tableau = mysql_fetch_array($res); $tableau[1] .= ";"; $dumpsql[] = str_replace("\n", "", $tableau[1]); $req_table = mysql_query("SELECT * FROM ".$table); $nbr_champs = mysql_num_fields($req_table); while($ligne = mysql_fetch_array($req_table)){ $insertions .= "INSERT INTO ".$table." VALUES("; for ($i=0; $i<=$nbr_champs-1; $i++){ $insertions .= "'".mysql_real_escape_string($ligne[$i])."', "; } $insertions = substr($insertions, 0, -2); $insertions .= ");\n"; } if ($insertions != ""){ $dumpsql[] = $insertions; } } } return implode("\r", $dumpsql);}file_put_contents("sauvegarde".date("Y-m-d").".sql", svg_bdd("host","user","pass","bdd")); merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 14 Juin 2008 Partager Posté 14 Juin 2008 Hello, quelle version de PHP utilises tu ? Depuis PHP 5.2 il y a la classe "Zip_Archive" qui est bien pratique pour compresser/décompresser en zip. Sinon un fichier .gz ne suffirait il pas ? C'est quand même beaucoup plus simple : if( $fp = gzopen( 'fichier.gz', 'wb' ) ){ gzwrite( $fp, $contents ); gzclose( $fp );} Lien vers le commentaire Partager sur d’autres sites More sharing options...
inizar Posté 14 Juin 2008 Auteur Partager Posté 14 Juin 2008 j'ai que php 4 , j'ai essayé de faire comme ça : $file=file_put_contents("upload/sauvegarde".date("Y-m-d").".sql", svg_bdd("host","user","pass","bdd")); header("Content-disposition: attachment; filename=$file"); header("Content-Type: application/force-download; Charset=ISO-8859-1"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize('./upload/'.$file)); header("Pragma: no-cache"); header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); readfile('./upload/'.$file); mais ça marche pas ,j'aimerais pouvoir le telecharger (a la meme extension sql à la volée ) et pas la peine qui sois enregistré dans un dossier merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 14 Juin 2008 Partager Posté 14 Juin 2008 (modifié) les chemins que tu indiques à file_put_contents() et à readfile() semblent différent... ça a peu de chance de fonctionner. De plus ici tu cherches à envoyer directement le contenu au navigateur, donc pas besoin de l'écrire dans un fichier, un simple "echo" suffira. De manière générale, lis les messages d'erreur que PHP retourne... c'est très souvent utile. Modifié 14 Juin 2008 par Kioob Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant