487 lines
22 KiB
PHP
487 lines
22 KiB
PHP
<?php
|
|
/* ----------------------------------------------------------------------
|
|
|
|
MyOOS [Dumper]
|
|
http://www.oos-shop.de/
|
|
|
|
Copyright (c) 2013 - 2022 by the MyOOS Development Team.
|
|
----------------------------------------------------------------------
|
|
Based on:
|
|
|
|
MySqlDumper
|
|
http://www.mysqldumper.de
|
|
|
|
Copyright (C)2004-2011 Daniel Schlichtholz (admin@mysqldumper.de)
|
|
----------------------------------------------------------------------
|
|
Released under the GNU General Public License
|
|
---------------------------------------------------------------------- */
|
|
|
|
if (!defined('MOD_VERSION')) {
|
|
exit('No direct access.');
|
|
}
|
|
|
|
function FilelisteCombo($fpath, $selected)
|
|
{
|
|
$r = '<select name="selectfile">';
|
|
$r .= '<option value="" '.(('' == $selected) ? 'SELECTED' : '').'></option>';
|
|
|
|
$dh = opendir($fpath);
|
|
while (false !== ($filename = readdir($dh))) {
|
|
if ('.' != $filename && '..' != $filename && !is_dir($fpath.$filename)) {
|
|
$r .= '<option value="'.$filename.'" ';
|
|
if ($filename == $selected) {
|
|
$r .= ' selected';
|
|
}
|
|
$r .= '>'.$filename.'</option>'."\n";
|
|
}
|
|
}
|
|
$r .= '</select>';
|
|
return $r;
|
|
}
|
|
|
|
function sortierdatum($datum)
|
|
{
|
|
$p = explode(' ', $datum);
|
|
$uhrzeit = $p[1];
|
|
$p2 = explode('.', $p[0]);
|
|
$day = $p2[0];
|
|
$month = $p2[1];
|
|
$year = $p2[2];
|
|
return $year.'.'.$month.'.'.$day.' '.$uhrzeit;
|
|
}
|
|
|
|
function FileList($multi = 0)
|
|
{
|
|
global $config, $fpath, $lang, $databases, $href, $dbactiv, $action, $expand;
|
|
|
|
$files = [];
|
|
//Backup-Dateien
|
|
$Theader = $lang['L_FM_FILES1'].' '.$lang['L_OF'].' "'.$dbactiv.'"';
|
|
$akind = 1;
|
|
$Sum_Files = 0;
|
|
$dh = opendir($fpath);
|
|
$fl = '';
|
|
$i = 0;
|
|
while (false !== ($filename = readdir($dh))) {
|
|
if ('.' != $filename && '..' != $filename && !is_dir($fpath.$filename)) {
|
|
$files[$i]['name'] = $filename;
|
|
++$Sum_Files;
|
|
++$i;
|
|
}
|
|
}
|
|
|
|
$fl .= '<div>'.$lang['L_FM_CHOOSE_FILE'].' ';
|
|
$fl .= '<span id="gd"> </span><br><br>';
|
|
|
|
$fl .= '<table class="bdr">';
|
|
$fl .= '<tr><td colspan="8" align="left"><strong>'.$Theader.'</strong></td><td colspan="3" align="right"></td></tr>';
|
|
|
|
//Tableheader
|
|
$fl .= '<tr class="thead"><th colspan="3">'.$lang['L_DB'].'</th>
|
|
<th>gz</th>
|
|
<th>Script</th>
|
|
<th colspan="2">'.$lang['L_COMMENT'].'</th>
|
|
<th>'.$lang['L_FM_FILEDATE'].'</th>
|
|
<th>Multipart</th>
|
|
<th>'.$lang['L_FM_TABLES'].' / '.$lang['L_FM_RECORDS'].'</th>
|
|
<th>'.$lang['L_FM_FILESIZE'].'</th>
|
|
<th>'.$lang['L_ENCODING'].'</th></tr>';
|
|
|
|
$checkindex = $arrayindex = $gesamt = 0;
|
|
$db_summary_anzahl = [];
|
|
if (count($files) > 0) {
|
|
for ($i = 0; $i < sizeof($files); ++$i) {
|
|
// Dateigröße
|
|
$size = filesize($fpath.$files[$i]['name']);
|
|
$file_datum = date("d\.m\.Y H:i", filemtime($fpath.$files[$i]['name']));
|
|
|
|
//statuszeile auslesen
|
|
$sline = '';
|
|
|
|
if ('.gz' == substr($files[$i]['name'], -3)) {
|
|
if ($config['zlib']) {
|
|
$fp = gzopen($fpath.$files[$i]['name'], 'r');
|
|
$sline = gzgets($fp, 40960);
|
|
gzclose($fp);
|
|
}
|
|
} else {
|
|
$fp = fopen($fpath.$files[$i]['name'], 'r');
|
|
$sline = fgets($fp, 5000);
|
|
fclose($fp);
|
|
}
|
|
|
|
$statusline = ReadStatusline($sline);
|
|
|
|
$but = ExtractBUT($files[$i]['name']);
|
|
if ('' == $but) {
|
|
$but = $file_datum;
|
|
}
|
|
$dbn = $statusline['dbname'];
|
|
if ('unknown' == $dbn) {
|
|
$dbn = '~unknown';
|
|
} // needed for sorting - place unknown files at the end
|
|
//jetzt alle in ein Array packen
|
|
if ('MP_0' == $statusline['part'] || '' == $statusline['part']) {
|
|
$db_backups[$arrayindex]['name'] = $files[$i]['name'];
|
|
$db_backups[$arrayindex]['db'] = $dbn;
|
|
$db_backups[$arrayindex]['size'] = $size;
|
|
$db_backups[$arrayindex]['date'] = $but;
|
|
$db_backups[$arrayindex]['sort'] = sortierdatum($but);
|
|
$db_backups[$arrayindex]['tabellen'] = $statusline['tables'];
|
|
$db_backups[$arrayindex]['eintraege'] = $statusline['records'];
|
|
$db_backups[$arrayindex]['multipart'] = 0;
|
|
$db_backups[$arrayindex]['kommentar'] = $statusline['comment'];
|
|
$db_backups[$arrayindex]['script'] = ('' != $statusline['script']) ? $statusline['script'].'('.$statusline['scriptversion'].')' : '';
|
|
$db_backups[$arrayindex]['charset'] = $statusline['charset'];
|
|
|
|
if (!isset($db_summary_last[$dbn])) {
|
|
$db_summary_last[$dbn] = $but;
|
|
}
|
|
$db_summary_anzahl[$dbn] = (isset($db_summary_anzahl[$dbn])) ? $db_summary_anzahl[$dbn] + 1 : 1;
|
|
$db_summary_size[$dbn] = (isset($db_summary_size[$dbn])) ? $db_summary_size[$dbn] + $size : $size;
|
|
if (sortierdatum($but) > sortierdatum($db_summary_last[$dbn])) {
|
|
$db_summary_last[$dbn] = $but;
|
|
}
|
|
} else {
|
|
//multipart nur einmal
|
|
$done = 0;
|
|
if (!isset($db_summary_size[$dbn])) {
|
|
$db_summary_size[$dbn] = 0;
|
|
}
|
|
for ($j = 0; $j < $arrayindex; ++$j) {
|
|
if (isset($db_backups[$j])) {
|
|
if (($db_backups[$j]['date'] == $but) && ($db_backups[$j]['db'] == $dbn)) {
|
|
++$db_backups[$j]['multipart'];
|
|
$db_backups[$j]['size'] += $size;
|
|
$db_summary_size[$dbn] += $size;
|
|
$done = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (1 == $done) {
|
|
--$arrayindex;
|
|
}
|
|
|
|
if (0 == $done) {
|
|
//Eintrag war noch nicht vorhanden
|
|
$db_backups[$arrayindex]['name'] = $files[$i]['name'];
|
|
$db_backups[$arrayindex]['db'] = $dbn;
|
|
$db_backups[$arrayindex]['size'] = $size;
|
|
$db_backups[$arrayindex]['date'] = $but;
|
|
$db_backups[$arrayindex]['sort'] = sortierdatum($but);
|
|
$db_backups[$arrayindex]['tabellen'] = $statusline['tables'];
|
|
$db_backups[$arrayindex]['eintraege'] = $statusline['records'];
|
|
$db_backups[$arrayindex]['multipart'] = 1;
|
|
$db_backups[$arrayindex]['kommentar'] = $statusline['comment'];
|
|
$db_backups[$arrayindex]['script'] = ('' != $statusline['script']) ? $statusline['script'].'('.$statusline['scriptversion'].')' : '';
|
|
$db_backups[$arrayindex]['charset'] = $statusline['charset'];
|
|
|
|
if (!isset($db_summary_last[$dbn])) {
|
|
$db_summary_last[$dbn] = $but;
|
|
}
|
|
$db_summary_anzahl[$dbn] = (isset($db_summary_anzahl[$dbn])) ? $db_summary_anzahl[$dbn] + 1 : 1;
|
|
$db_summary_size[$dbn] = (isset($db_summary_size[$dbn])) ? $db_summary_size[$dbn] + $size : $size;
|
|
if (sortierdatum($but) > sortierdatum($db_summary_last[$dbn])) {
|
|
$db_summary_last[$dbn] = $but;
|
|
}
|
|
}
|
|
}
|
|
// Gesamtgroesse aller Backupfiles
|
|
++$arrayindex;
|
|
$gesamt = $gesamt + $size;
|
|
}
|
|
}
|
|
//Schleife fertig - jetzt Ausgabe
|
|
if ((isset($db_backups)) && (is_array($db_backups))) {
|
|
$db_backups = mu_sort($db_backups, 'sort,name');
|
|
}
|
|
|
|
// Hier werden die Dateinamen ausgegeben
|
|
$rowclass = 0;
|
|
if ($arrayindex > 0) {
|
|
for ($i = $arrayindex; $i >= 0; --$i) {
|
|
if (isset($db_backups[$i]['db']) && $db_backups[$i]['db'] == $dbactiv) {
|
|
$cl = ($rowclass % 2) ? 'dbrow' : 'dbrow1';
|
|
$multi = ($db_summary_anzahl[$dbactiv] > 1 && 'files' == $action) ? 1 : 0;
|
|
|
|
if ($db_backups[$i]['multipart'] > 0) {
|
|
$dbn = NextPart($db_backups[$i]['name'], 1);
|
|
} else {
|
|
$dbn = $db_backups[$i]['name'];
|
|
}
|
|
$fl .= '<tr ';
|
|
$fl .= 'class="'.(($rowclass % 2) ? 'dbrow"' : 'dbrow1"');
|
|
$fl .= '>';
|
|
$fl .= '<td align="left" colspan="2" nowrap="nowrap">';
|
|
$fl .= '<input type="hidden" name="multi" value="'.$multi.'">';
|
|
|
|
if (0 == $multi) {
|
|
$fl .= '<input type="hidden" name="multipart[]" value="'.$db_backups[$i]['multipart'].'"><input name="file[]" type="radio" class="radio" value="'.$dbn.'" onClick="Check('.$checkindex++.',0);">';
|
|
} else {
|
|
$fl .= '<input type="hidden" name="multipart[]" value="'.$db_backups[$i]['multipart'].'"><input name="file[]" type="checkbox" class="checkbox" value="'.$dbn.'" onClick="Check('.$checkindex++.',1);">';
|
|
}
|
|
|
|
if (0 == $db_backups[$i]['multipart']) {
|
|
$fl .= ' <a href="'.$fpath.urlencode($dbn).'" title="Backupfile: '.$dbn.'" style="font-size:8pt;" target="_blank">';
|
|
$fl .= (('~unknown' == $db_backups[$i]['db']) ? $dbn : $db_backups[$i]['db']).'</a></td>';
|
|
$fl .= '<td><a href="filemanagement.php?action=dl&f='.urlencode($dbn).'" title="'.$lang['L_DOWNLOAD_FILE'].'" alt="'.$lang['L_DOWNLOAD_FILE'].'"><img src="'.$config['files']['iconpath'].'/openfile.gif"></a></td>';
|
|
} else {
|
|
$fl .= ' <span style="font-size:8pt;">'.$db_backups[$i]['db'].'</span><td> </td></td>';
|
|
}
|
|
|
|
$fl .= '<td class="sm" nowrap="nowrap" align="center">'.(('.gz' == substr($dbn, -3)) ? '<img src="'.$config['files']['iconpath'].'gz.gif" alt="'.$lang['L_COMPRESSED'].'" width="16" height="16" border="0">' : ' ').'</td>';
|
|
$fl .= '<td class="sm" nowrap="nowrap" align="center">'.$db_backups[$i]['script'].'</td>';
|
|
$fl .= '<td class="sm" nowrap="nowrap" align="right">'.(('' != $db_backups[$i]['kommentar']) ? '<img src="'.$config['files']['iconpath'].'rename.gif" alt="'.$db_backups[$i]['kommentar'].'" title="'.$db_backups[$i]['kommentar'].'" width="16" height="16" border="0">' : ' ').'</td>';
|
|
$fl .= '<td class="sm" nowrap="nowrap" align="left">'.(('' != $db_backups[$i]['kommentar']) ? nl2br(wordwrap($db_backups[$i]['kommentar'], 50)) : ' ').'</td>';
|
|
|
|
$fl .= '<td class="sm" nowrap="nowrap">'.$db_backups[$i]['date'].'</td>';
|
|
$fl .= '<td style="text-align:center">';
|
|
$fl .= (0 == $db_backups[$i]['multipart']) ? $lang['L_NO'] : '<a style="font-size:11px;" href="filemanagement.php?action=files&kind=0&dbactiv='.$dbactiv.'&expand='.$i.'">'.$db_backups[$i]['multipart'].' Files</a>';
|
|
$fl .= '</td><td style="text-align:right;padding-right:12px;" nowrap="nowrap">';
|
|
$fl .= (-1 != $db_backups[$i]['eintraege']) ? $db_backups[$i]['tabellen'].' / '.number_format($db_backups[$i]['eintraege'], 0, ',', '.') : $lang['L_FM_OLDBACKUP'];
|
|
$fl .= '</td>';
|
|
$fl .= '<td style="font-size:8pt;text-align:right">'.byte_output($db_backups[$i]['size']).'</td>';
|
|
$fl .= '<td style="font-size:8pt;text-align:right">'.$db_backups[$i]['charset'].'</td>';
|
|
$fl .= '</tr>';
|
|
|
|
if ($expand == $i) {
|
|
$fl .= '<tr '.(($dbactiv == $databases['db_actual']) ? 'class="dbrowsel"' : 'class="'.$cl.'"').'>';
|
|
$fl .= '<td class="sm" valign="top">All Parts:</td><td class="sm" colspan="11" align="left">'.PartListe($db_backups[$i]['name'], $db_backups[$i]['multipart']).'</td>';
|
|
}
|
|
++$rowclass;
|
|
}
|
|
}
|
|
}
|
|
//v($db_backups);
|
|
$fl .= '<tr><td colspan="11" align="left"><br><strong>'.$lang['L_FM_ALL_BU'].'</strong></td></tr>';
|
|
//Tableheader
|
|
$fl .= '<tr class="thead"><th colspan="5" align="left">'.$lang['L_FM_DBNAME'].'</th>
|
|
<th align="left">'.$lang['L_FM_ANZ_BU'].'</th><th>'.$lang['L_FM_LAST_BU'].'</th>
|
|
<th colspan="5" style="text-align:right;">'.$lang['L_FM_TOTALSIZE'].'</th></tr>';
|
|
//die anderen Backups
|
|
if (count($db_summary_anzahl) > 0) {
|
|
//lets sort the list
|
|
ksort($db_summary_last);
|
|
ksort($db_summary_anzahl);
|
|
ksort($db_summary_size);
|
|
|
|
$i = 0;
|
|
foreach ($db_summary_anzahl as $key => $val) {
|
|
$cl = ($i++ % 2) ? 'dbrow' : 'dbrow1';
|
|
$keyaus = ('~unknown' == $key) ? '<em>'.$lang['L_NO_MOD_BACKUPFILE'].'</em>' : $key;
|
|
$fl .= '<tr class="'.$cl.'"><td colspan="5" align="left"><a href="'.$href.'&dbactiv='.$key.'">'.$keyaus.'</a></td>';
|
|
$fl .= '<td style="text-align:right">'.$val.' </td>';
|
|
$fl .= '<td class="sm" nowrap="nowrap">'.((isset($db_summary_last[$key])) ? $db_summary_last[$key] : '').'</td>';
|
|
$fl .= '<td style="text-align:right;font-size:8pt;" colspan="5">'.byte_output($db_summary_size[$key]).' </td>';
|
|
$fl .= '</tr>';
|
|
}
|
|
}
|
|
if (!is_array($files)) {
|
|
$fl .= '<tr><td colspan="11">'.$lang['L_FM_NOFILESFOUND'].'</td></tr>';
|
|
}
|
|
|
|
//--------------------------------------------------------
|
|
//*** Ausgabe der Gesamtgröße aller Backupfiles ***
|
|
//--------------------------------------------------------
|
|
$space = MD_FreeDiskSpace();
|
|
$fl .= '<tr>';
|
|
$fl .= '<td align="left" colspan="8"><b>'.$lang['L_FM_TOTALSIZE'].' ('.$Sum_Files.' files): </b> </td>';
|
|
$fl .= '<td style="text-align:right" colspan="4"><b>'.byte_output($gesamt).'</b></td>';
|
|
$fl .= '</tr>';
|
|
|
|
//--------------------------------------------------------
|
|
//*** Ausgabe des freien Speicher auf dem Rechner ***
|
|
//--------------------------------------------------------
|
|
$fl .= '<tr>';
|
|
$fl .= '<td colspan="8" align="left">'.$lang['L_FM_FREESPACE'].': </td>';
|
|
$fl .= '<td colspan="4" style="text-align:right"><b>'.$space.'</b></td>';
|
|
$fl .= '</tr>';
|
|
$fl .= '</table></div>';
|
|
|
|
return $fl;
|
|
}
|
|
|
|
function read_statusline_from_file($filename)
|
|
{
|
|
global $config;
|
|
if ('gz' == strtolower(substr($filename, -2))) {
|
|
$fp = gzopen($config['paths']['backup'].$filename, 'r');
|
|
if (false === $fp) {
|
|
exit('Can\'t open file '.$filename);
|
|
}
|
|
$sline = gzgets($fp, 40960);
|
|
gzclose($fp);
|
|
} else {
|
|
$fp = fopen($config['paths']['backup'].$filename, 'r');
|
|
if (false === $fp) {
|
|
exit('Can\'t open file '.$filename);
|
|
}
|
|
$sline = fgets($fp, 5000);
|
|
fclose($fp);
|
|
}
|
|
$statusline = ReadStatusline($sline);
|
|
return $statusline;
|
|
}
|
|
|
|
function PartListe($f, $nr)
|
|
{
|
|
global $config, $lang, $fpath;
|
|
$dateistamm = substr($f, 0, strrpos($f, 'part_')).'part_';
|
|
$dateiendung = ('gz' == substr(strtolower($f), -2)) ? '.sql.gz' : '.sql';
|
|
$s = '';
|
|
for ($i = 1; $i <= $nr; ++$i) {
|
|
if ($i > 1) {
|
|
$s .= '<br>';
|
|
}
|
|
$s .= '<a href="'.$fpath.urlencode($dateistamm.$i.$dateiendung).'">'.$dateistamm.$i.$dateiendung.'</a> '.byte_output(@filesize($config['paths']['backup'].$dateistamm.$i.$dateiendung));
|
|
$s .= ' <a href="filemanagement.php?action=dl&f='.urlencode($dateistamm.$i.$dateiendung).'" title="'.$lang['L_DOWNLOAD_FILE'].'" alt="'.$lang['L_DOWNLOAD_FILE'].'"><img src="'.$config['files']['iconpath'].'/openfile.gif"></a>';
|
|
}
|
|
return $s;
|
|
}
|
|
|
|
function Converter($filesource, $filedestination, $cp)
|
|
{
|
|
global $config, $lang;
|
|
|
|
$filesize = 0;
|
|
$max_filesize = 1024 * 1024 * 10; //10 MB splitsize
|
|
$part = 1;
|
|
$cps = ('gz' == substr(strtolower($filesource), -2)) ? 1 : 0;
|
|
$filedestination .= '_'.date('Y_m_d_H_i', time());
|
|
echo '<h5>'.sprintf($lang['L_CONVERT_FILEREAD'], $filesource).'.....</h5><span style="font-size:10px;">';
|
|
if (file_exists($config['paths']['backup'].$filedestination)) {
|
|
unlink($config['paths']['backup'].$filedestination);
|
|
}
|
|
$f = (1 == $cps) ? gzopen($config['paths']['backup'].$filesource, 'r') : fopen($config['paths']['backup'].$filesource, 'r');
|
|
$z = (1 == $cp) ? gzopen($config['paths']['backup'].$filedestination.'_part_1.sql.gz', 'w') : fopen($config['paths']['backup'].$filedestination.'_part_1.sql', 'w');
|
|
|
|
$zeile = get_pseudo_statusline($part, $filedestination)."\r\n";
|
|
(1 == $cp) ? gzwrite($z, $zeile) : fwrite($z, $zeile);
|
|
$zeile = '';
|
|
|
|
$insert = $mode = '';
|
|
$n = 0;
|
|
$eof = (1 == $cps) ? gzeof($f) : feof($f);
|
|
$splitable = false; // can the file be splitted? Try to avoid splitting before a command is completed
|
|
while (!$eof) {
|
|
$eof = (1 == $cps) ? gzeof($f) : feof($f);
|
|
$zeile = (1 == $cps) ? gzgets($f, 5144000) : fgets($f, 5144000);
|
|
|
|
$t = strtolower(substr($zeile, 0, 10));
|
|
if ($t > '') {
|
|
switch ($t) {
|
|
case 'insert int':
|
|
// eine neue Insert Anweisung beginnt
|
|
if (false === strpos($zeile, '(')) {
|
|
//Feldnamen stehen in der naechsten Zeile - holen
|
|
$zeile .= "\n\r";
|
|
$zeile .= (1 == $cps) ? trim(gzgets($f, 8192)) : trim(fgets($f, 8192));
|
|
$zeile .= ' ';
|
|
}
|
|
|
|
// get INSERT-Satement
|
|
$insert = substr($zeile, 0, strpos($zeile, '('));
|
|
if ('VALUES ' != substr(strtoupper($insert), -7)) {
|
|
$insert .= ' VALUES ';
|
|
}
|
|
$mode = 'insert';
|
|
$zeile = "\n\r".$zeile;
|
|
$splitable = false;
|
|
break;
|
|
|
|
case 'create tab':
|
|
$mode = 'create';
|
|
while (';' != substr(rtrim($zeile), -1)) {
|
|
$zeile .= fgets($f, 8192);
|
|
}
|
|
$zeile = "\n\r".MySQLi_Ticks($zeile)."\n\r";
|
|
$splitable = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ('insert' == $mode) {
|
|
if (');' == substr(rtrim($zeile), strlen($zeile) - 3, 2)) {
|
|
$splitable = true;
|
|
}
|
|
|
|
// Komma loeschen
|
|
$zeile = str_replace('),(', ");\n\r".$insert.' (', $zeile);
|
|
}
|
|
|
|
if (true == $splitable && $filesize > $max_filesize) { // start new file?
|
|
++$part;
|
|
if ('insert' == $mode) { // Insert -> first complete Insert-Statement, then begin new file
|
|
if (1 == $cp) {
|
|
gzwrite($z, $zeile);
|
|
gzclose($z);
|
|
$z = gzopen($config['paths']['backup'].$filedestination.'_part_'.$part.'.sql.gz', 'w');
|
|
$zeile = get_pseudo_statusline($part, $filedestination)."\r\n";
|
|
gzwrite($z, $zeile);
|
|
$zeile = '';
|
|
} else {
|
|
fwrite($z, $zeile);
|
|
echo '<br>Neue Datei.Zeile: <br>'.htmlspecialchars(substr($zeile, 0, 20)).'..'.htmlspecialchars(substr($zeile, strlen($zeile) - 41, 40)).'<br>';
|
|
fclose($z);
|
|
$z = fopen($config['paths']['backup'].$filedestination.'_part_'.$part.'.sql', 'w');
|
|
$zeile = get_pseudo_statusline($part, $filedestination)."\r\n";
|
|
gzwrite($z, $zeile);
|
|
$zeile = '';
|
|
}
|
|
} else { // first close last file, then begin new one and write new beginning command
|
|
if (1 == $cp) {
|
|
gzclose($z);
|
|
$z = gzopen($config['paths']['backup'].$filedestination.'_part_'.$part.'.sql.gz', 'w');
|
|
$zeile = get_pseudo_statusline($part, $filedestination)."\r\n".$zeile;
|
|
gzwrite($z, $zeile);
|
|
} else {
|
|
fclose($z);
|
|
$z = fopen($config['paths']['backup'].$filedestination.'_part_'.$part.'.sql', 'w');
|
|
$zeile = get_pseudo_statusline($part, $filedestination)."\r\n".$zeile;
|
|
fwrite($z, $zeile);
|
|
}
|
|
}
|
|
$filesize = 0;
|
|
$splitable = false;
|
|
} else { // no, append to actual file
|
|
$filesize += strlen($zeile);
|
|
if ($n > 600) {
|
|
$n = 0;
|
|
echo '<br>';
|
|
}
|
|
echo '.';
|
|
if (1 == $cps) {
|
|
gzwrite($z, $zeile);
|
|
} else {
|
|
fwrite($z, $zeile);
|
|
}
|
|
flush();
|
|
}
|
|
++$n;
|
|
//if ($part>4) break;
|
|
}
|
|
$zeile = "\n-- EOB";
|
|
if (1 == $cps) {
|
|
gzwrite($z, $zeile);
|
|
gzclose($z);
|
|
} else {
|
|
fwrite($z, $zeile);
|
|
fclose($z);
|
|
}
|
|
|
|
if (1 == $cps) {
|
|
gzclose($f);
|
|
} else {
|
|
fclose($f);
|
|
}
|
|
echo '</span><h5>'.sprintf($lang['L_CONVERT_FINISHED'], $filedestination).'</h5>';
|
|
}
|
|
|
|
function get_pseudo_statusline($part, $filedestination)
|
|
{
|
|
echo '<br>Continue with part: '.$part.'<br>';
|
|
$ret = '-- Status:-1:-1:MP_'.($part).':'.$filedestination.":php:converter2:converted:unknown:1:::latin1:EXTINFO\r\n"."-- TABLE-INFO\r\n"."-- TABLE|unknown|0|0|2009-01-24 20:39:39\r\n"."-- EOF TABLE-INFO\r\n";
|
|
return $ret;
|
|
}
|