491 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			17 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			491 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			17 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
if (!defined('MSD_VERSION')) die('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=Array();
 | 
						|
	//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=Array();
 | 
						|
	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 (substr($files[$i]['name'],-3)=='.gz')
 | 
						|
			{
 | 
						|
				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 ($dbn=='unknown') $dbn='~unknown'; // needed for sorting - place unknown files at the end
 | 
						|
			//jetzt alle in ein Array packen
 | 
						|
			if ($statusline['part']=='MP_0'||$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 ($done==1) $arrayindex--;
 | 
						|
				
 | 
						|
				if ($done==0)
 | 
						|
				{
 | 
						|
					//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&&$action=='files') ? 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 ($multi==0)
 | 
						|
				{
 | 
						|
					$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 ($db_backups[$i]['multipart']==0)
 | 
						|
				{
 | 
						|
					$fl.=' <a href="'.$fpath.urlencode($dbn).'" title="Backupfile: '.$dbn.'" style="font-size:8pt;" target="_blank">';
 | 
						|
					$fl.=(($db_backups[$i]['db']=='~unknown') ? $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">'.((substr($dbn,-3)==".gz") ? '<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.=($db_backups[$i]['multipart']==0) ? $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.=($db_backups[$i]['eintraege']!=-1) ? $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;
 | 
						|
		while (list ($key,$val)=each($db_summary_anzahl))
 | 
						|
		{
 | 
						|
			$cl=($i++%2) ? "dbrow":"dbrow1";
 | 
						|
			$keyaus=($key=="~unknown") ? '<em>'.$lang['L_NO_MSD_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 (strtolower(substr($filename,-2))=='gz')
 | 
						|
	{
 | 
						|
		$fp=gzopen($config['paths']['backup'].$filename,"r");
 | 
						|
		if ($fp===false) die('Can\'t open file '.$filename);
 | 
						|
		$sline=gzgets($fp,40960);
 | 
						|
		gzclose($fp);
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		$fp=fopen($config['paths']['backup'].$filename,"r");
 | 
						|
		if ($fp===false) die('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=(substr(strtolower($f),-2)=="gz") ? ".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=(substr(strtolower($filesource),-2)=="gz") ? 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=($cps==1) ? gzopen($config['paths']['backup'].$filesource,"r"):fopen($config['paths']['backup'].$filesource,"r");
 | 
						|
	$z=($cp==1) ? 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";
 | 
						|
	($cp==1) ? gzwrite($z,$zeile):fwrite($z,$zeile);
 | 
						|
	$zeile='';
 | 
						|
	
 | 
						|
	$insert=$mode="";
 | 
						|
	$n=0;
 | 
						|
	$eof=($cps==1) ? gzeof($f):feof($f);
 | 
						|
	$splitable=false; // can the file be splitted? Try to avoid splitting before a command is completed
 | 
						|
	WHILE (!$eof)
 | 
						|
	{
 | 
						|
		$eof=($cps==1) ? gzeof($f):feof($f);
 | 
						|
		$zeile=($cps==1) ? 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 (strpos($zeile,0,'(')===false)
 | 
						|
						{
 | 
						|
							//Feldnamen stehen in der naechsten Zeile - holen
 | 
						|
							$zeile.="\n\r";
 | 
						|
							$zeile.=($cps==1) ? trim(gzgets($f,8192)):trim(fgets($f,8192));
 | 
						|
							$zeile.=' ';
 | 
						|
						}
 | 
						|
						
 | 
						|
						// get INSERT-Satement
 | 
						|
						$insert=substr($zeile,0,strpos($zeile,'('));
 | 
						|
						if (substr(strtoupper($insert),-7)!='VALUES ') $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".MySQL_Ticks($zeile)."\n\r";
 | 
						|
						$splitable=true;
 | 
						|
						break;
 | 
						|
					}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		if ($mode=='insert')
 | 
						|
		{
 | 
						|
			if (substr(rtrim($zeile),strlen($zeile)-3,2)==');') $splitable=true;
 | 
						|
			
 | 
						|
			// Komma loeschen
 | 
						|
			$zeile=str_replace('),(',");\n\r".$insert.' (',$zeile);
 | 
						|
		}
 | 
						|
		
 | 
						|
		if ($splitable==true&&$filesize>$max_filesize) // start new file?
 | 
						|
		{
 | 
						|
			$part++;
 | 
						|
			if ($mode=='insert') // Insert -> first complete Insert-Statement, then begin new file
 | 
						|
			{
 | 
						|
				if ($cp==1)
 | 
						|
				{
 | 
						|
					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 ($cp==1)
 | 
						|
				{
 | 
						|
					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 ($cps==1) gzwrite($z,$zeile);
 | 
						|
			else
 | 
						|
				fwrite($z,$zeile);
 | 
						|
			flush();
 | 
						|
		}
 | 
						|
		$n++;
 | 
						|
		//if ($part>4) break;
 | 
						|
	}
 | 
						|
	$zeile="\n-- EOB";
 | 
						|
	if ($cps==1)
 | 
						|
	{
 | 
						|
		gzwrite($z,$zeile);
 | 
						|
		gzclose($z);
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		fwrite($z,$zeile);
 | 
						|
		fclose($z);
 | 
						|
	}
 | 
						|
	
 | 
						|
	if ($cps==1) 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;
 | 
						|
}
 | 
						|
 | 
						|
?>
 |