msd Backup hinzugefügt
This commit is contained in:
486
msd/inc/functions_files.php
Normal file
486
msd/inc/functions_files.php
Normal file
@ -0,0 +1,486 @@
|
||||
<?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;
|
||||
}
|
Reference in New Issue
Block a user