Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mata Hary

Backup banco do dados e gera um .zip

Recommended Posts

backup.php

 

<?php//informações para conexão à base de dados$host = "localhost"; // host do mysql$user = "root"; // usuário$pass = ""; // senha do usuário$base = "banco"; // nome da base de dados// conecta o mysql$conn = mysql_connect($host, $user, $pass) or die ("<br><br><center>Problemas ao conectar no servidor: " . mysql_error() . "</center>");// seleciona a base de dados$banc = mysql_select_db($base) or die ("<br><br><center>Problemas ao selecionar a base de dados do sistemas: " . mysql_error() . "</center>");if (function_exists("set_time_limit") == 1 and get_cfg_var("safe_mode") == 0){@set_time_limit(0);}function sqlAddslashes($str = '', $is_like = FALSE){if ($is_like){$str = str_replace('a34f59274d50f313ec06e96e2620e117', 'a34f59274d50f313ec06e96e2620e117', $str);}else{$str = str_replace('a34f59274d50f313ec06e96e2620e117', 'a34f59274d50f313ec06e96e2620e117', $str);}$str = str_replace('a34f59274d50f313ec06e96e2620e117', 'a34f59274d50f313ec06e96e2620e117', $str);return $str;}function dumptb($table) {$nline = "n";$dp = "CREATE TABLE $table ($nline";$firstfield = 1;$fields_array = mysql_query("SHOW FIELDS FROM $table");while ($field = mysql_fetch_array($fields_array)){if (!$firstfield){$dp .= ",n";}else{$firstfield = 0;}$dp .= "t".$field["Field"]." ". $field["Type"];if (isset($field['Default']) && $field['Default'] != ''){$dp .= ' default a34f59274d50f313ec06e96e2620e117' . sqlAddslashes($field['Default']) . 'a34f59274d50f313ec06e96e2620e117';}if ($field['Null'] != 'YES'){$dp .= ' NOT NULL ';}if (!empty($field["Extra"])){$dp .= $field["Extra"];}}mysql_free_result($fields_array);$keysindex_array = mysql_query("SHOW KEYS FROM $table");while ($key = mysql_fetch_array($keysindex_array)){$kname = $key['Key_name'];if ($kname != "PRIMARY" and $key['Non_unique'] == 0){$kname = "UNIQUE|$kname";}$index[$kname][] = $key['Column_name'];}mysql_free_result($keysindex_array);while(list($kname, $columns) = @each($index)){$dp .= ",n";$colnames = implode($columns,",");if($kname == 'PRIMARY'){$dp .= "tPRIMARY KEY ($colnames)";}else{if (substr($kname,0,6) == 'UNIQUE'){$kname = substr($kname,7);}$dp .= " KEY $kname ($colnames)";}}$dp .= "n);nn";$rows = mysql_query("SELECT * FROM $table");$numfields=mysql_num_fields($rows);while ($row = mysql_fetch_array($rows)){$dp .= "INSERT INTO $table VALUES(";$fieldcounter=-1;$firstfield=1;while (++$fieldcounter<$numfields){if(!$firstfield){$dp .=' , ';}else{$firstfield=0;}if (!isset($row[$fieldcounter])){$dp .= 'NULL';}else{$dp .= "'".mysql_escape_string($row[$fieldcounter])."'";}}$dp .= ");n";}mysql_free_result($rows);return $dp;}$table = mysql_query("SHOW tables");unset($temp_buffer);while ($row = mysql_fetch_array($table)){if (!empty($row[0])){$temp_buffer = dumptb($row[0])."nnn";}}$file_name = date("d-m-Y").".txt"; // path chmod 777$filehandle = fopen($file_name,'w');$result = mysql_query("SHOW tables");while ($row = mysql_fetch_array($result)){fwrite($filehandle,dumptb($row[0])."nnn");}fclose($filehandle);//zipa o arquivorequire('zip_lib.php');$zipfile = new zipfile(date("d-m-Y").".zip");$zipfile->addFileAndRead($file_name);echo $zipfile->file();?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

PÁGINA zip_lib.php

 

<?phpclass zipfile{var $datasec = array();var $ctrl_dir = array();var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";function zipfile ($output_filename = 'archive.zip'){header('Content-Type: application/x-zip');header('Content-Disposition: inline; filename="' . $output_filename . '"');header('Expires: 0');header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');}function read_File ($file){if (is_file($file)){$fp = fopen ($file, 'rb');$content = fread ($fp, filesize($file));fclose ($fp);return $content;}}function addFileAndRead ($file){if (is_file($file))$this -> addFile($this -> read_File($file), $file);}function unix2DosTime($unixtime = 0){$timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);if ($timearray['year'] < 1980){$timearray['year'] = 1980;$timearray['mon'] = 1;$timearray['mday'] = 1;$timearray['hours'] = 0;$timearray['minutes'] = 0;$timearray['seconds'] = 0;}return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) |($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);}function addFile($data, $name, $time = 0){$name = str_replace('\\', '/', $name);$dtime = dechex($this -> unix2DosTime($time));$hexdtime = '\x' . $dtime[6] . $dtime[7]. '\x' . $dtime[4] . $dtime[5]. '\x' . $dtime[2] . $dtime[3]. '\x' . $dtime[0] . $dtime[1];eval('$hexdtime = "' . $hexdtime . '";');$fr = "\x50\x4b\x03\x04";$fr .= "\x14\x00"; // ver needed to extract$fr .= "\x00\x00"; // gen purpose bit flag$fr .= "\x08\x00"; // compression method$fr .= $hexdtime; // last mod time and date$unc_len = strlen($data);$crc = crc32($data);$zdata = gzcompress($data);$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug$c_len = strlen($zdata);$fr .= pack('V', $crc); // crc32$fr .= pack('V', $c_len); // compressed filesize$fr .= pack('V', $unc_len); // uncompressed filesize$fr .= pack('v', strlen($name)); // length of filename$fr .= pack('v', 0); // extra field length$fr .= $name;$fr .= $zdata;$fr .= pack('V', $crc); // crc32$fr .= pack('V', $c_len); // compressed filesize$fr .= pack('V', $unc_len); // uncompressed filesize$this -> datasec[] = $fr;$new_offset = strlen(implode('', $this -> datasec));$cdrec = "\x50\x4b\x01\x02";$cdrec .= "\x00\x00"; // version made by$cdrec .= "\x14\x00"; // version needed to extract$cdrec .= "\x00\x00"; // gen purpose bit flag$cdrec .= "\x08\x00"; // compression method$cdrec .= $hexdtime; // last mod time & date$cdrec .= pack('V', $crc); // crc32$cdrec .= pack('V', $c_len); // compressed filesize$cdrec .= pack('V', $unc_len); // uncompressed filesize$cdrec .= pack('v', strlen($name)); // length of filename$cdrec .= pack('v', 0); // extra field length$cdrec .= pack('v', 0); // file comment length$cdrec .= pack('v', 0); // disk number start$cdrec .= pack('v', 0); // internal file attributes$cdrec .= pack('V', 32); // external file attributes - 'archive' bit set$cdrec .= pack('V', $this -> old_offset); // relative offset of local header$this -> old_offset = $new_offset;$cdrec .= $name;$this -> ctrl_dir[] = $cdrec;}function file(){$data = implode(NULL, $this -> datasec);$ctrldir = implode(NULL, $this -> ctrl_dir);return $data .$ctrldir .$this -> eof_ctrl_dir .pack('v', sizeof($this -> ctrl_dir)) . pack('v', sizeof($this -> ctrl_dir)) . pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; // .zip file comment length}}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acredito que o codigo do Fabyo é melhor do que o que eu postei, mas nao consegui zipar com a pagina dele.Aconteceu a mesma coisa com o ITALO.Se você conseguiu arrumar os bugs da segunda pagina do Fabyo (a que zipa). Posta aqui para gente poder usar tb.Que erros você encontrou na minha?Posta aqui. Assim a gente vai aprimorando.Um abraço Mata HaryP.S. Não sei se você notou, mas essa primeira pagina é a do Fabyo, eu só coloquei as aspas onde faltavam (a partir da linha 15).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa ja arrumei o problema da minha função era porque tinha dado pau nas tags php por isso tinha zoado todo script e tinha sumido ate com as aspas

 

eu arrumei o script e no final do topico eu postei um novo script de backup que eu fiz achei bem melhor e mais simples t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.