inizar Posté 14 Juin 2008 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
Kioob Posté 14 Juin 2008 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 );}
inizar Posté 14 Juin 2008 Auteur 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
Kioob Posté 14 Juin 2008 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant