$config['memory_limit'])
{
CSVOutput($t);
$t="";
}
$time_now=time();
if ($time_start >= $time_now + 30)
{
$time_start=$time_now;
header('X-MSDPing: Pong');
}
}
}
}
CSVOutput($t,1);
}
function CSVOutput($str, $last=0)
{
global $sql,$config;
if ($sql['export']['sendfile'] == 0)
{
//Display
echo $str;
}
else
{
if ($sql['export']['header_sent'] == "")
{
if ($sql['export']['compressed'] == 1 & !function_exists('gzencode')) $sql['export']['compressed']=0;
if ($sql['export']['format'] < 4)
{
$file=$sql['export']['db'] . ( ( $sql['export']['compressed'] == 1 ) ? ".csv.gz" : ".csv" );
}
elseif ($sql['export']['format'] == 4)
{
$file=$sql['export']['db'] . ( ( $sql['export']['compressed'] == 1 ) ? ".xml.gz" : ".xml" );
}
elseif ($sql['export']['format'] == 5)
{
$file=$sql['export']['db'] . ( ( $sql['export']['compressed'] == 1 ) ? ".html.gz" : ".html" );
}
$mime=( $sql['export']['compressed'] == 0 ) ? "x-type/subtype" : "application/x-gzip";
header('Content-Disposition: attachment; filename="' . $file . '"');
header('Pragma: no-cache');
header('Content-Type: ' . $mime);
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
$sql['export']['header_sent']=1;
}
if ($sql['export']['compressed'] == 1) echo gzencode($str);
else echo $str;
}
}
function DoImport()
{
global $sql,$lang;
$r='';
$zeilen=count($sql['import']['csv']) - $sql['import']['namefirstline'];
$sql['import']['first_zeile']=explode($sql['import']['trenn'],$sql['import']['csv'][0]);
$importfelder=count($sql['import']['first_zeile']);
if ($sql['import']['tablecreate'] == 0)
{
$res=MSD_query("show fields FROM " . $sql['import']['table']);
$tabellenfelder=mysql_num_rows($res);
if ($importfelder != $tabellenfelder)
{
$r.='
' . sprintf($lang['L_CSV_FIELDCOUNT_NOMATCH'],$tabellenfelder,$importfelder);
}
else
{
$ok=1;
}
}
else
{
$ok=ImportCreateTable();
if ($ok == 0)
{
$r.='
' . sprintf($lang['L_CSV_ERRORCREATETABLE'],$sql['import']['table']);
}
}
if ($ok == 1)
{
$insert="";
if ($sql['import']['emptydb'] == 1 && $sql['import']['tablecreate'] == 0)
{
MSD_DoSQL("TRUNCATE " . $sql['import']['table'] . ";");
}
$sql['import']['lines_imported']=0;
$enc=( $sql['import']['enc'] == "" ) ? "'" : "";
$zc="";
for ($i=$sql['import']['namefirstline']; $i < $zeilen + $sql['import']['namefirstline']; $i++)
{
//Importieren
$insert="INSERT INTO " . $sql['import']['table'] . " VALUES(";
if ($sql['import']['createindex'] == 1) $insert.="'', ";
$zc.=trim(rtrim($sql['import']['csv'][$i]));
//echo "Zeile $i: $zc
";
if ($zc != "")
{ // && substr($zc,-1)==$enc) {
$zeile=explode($sql['import']['trenn'],$zc);
for ($j=0; $j < $importfelder; $j++)
{
$a=( $zeile[$j] == "" && $enc == "" ) ? "''" : $zeile[$j];
$insert.=$enc . $a . $enc . ( ( $j == $importfelder - 1 ) ? ");\n" : "," );
}
MSD_DoSQL($insert);
$sql['import']['lines_imported']++;
$zc="";
}
}
$r.=sprintf($lang['L_CSV_FIELDSLINES'],$importfelder,$sql['import']['lines_imported']);
}
$r.='';
return $r;
}
function ImportCreateTable()
{
global $sql,$lang,$db,$config;
$tbl=Array();
$tabellen=mysql_list_tables($db,$config['dbconnection']);
$num_tables=mysql_num_rows($tabellen);
for ($i=0; $i < $num_tables; $i++)
{
$tbl[]=strtolower(mysql_tablename($tabellen,$i));
}
$i=0;
$sql['import']['table']=$sql['import']['table'] . $i;
while (in_array($sql['import']['table'],$tbl))
{
$sql['import']['table']=substr($sql['import']['table'],0,strlen($sql['import']['table']) - 1) . ++$i;
}
$create="CREATE TABLE `" . $sql['import']['table'] . "` (" . ( ( $sql['import']['createindex'] == 1 ) ? '`import_id` int(11) unsigned NOT NULL auto_increment, ' : '' );
if ($sql['import']['namefirstline'])
{
for ($i=0; $i < count($sql['import']['first_zeile']); $i++)
{
$create.='`' . $sql['import']['first_zeile'][$i] . '` VARCHAR(250) NOT NULL, ';
}
}
else
{
for ($i=0; $i < count($sql['import']['first_zeile']); $i++)
{
$create.='`FIELD_' . $i . '` VARCHAR(250) NOT NULL, ';
}
}
if ($sql['import']['createindex'] == 1) $create.='PRIMARY KEY (`import_id`) ';
else $create=substr($create,0,strlen($create) - 2);
$create.=') ' . ( ( MSD_NEW_VERSION ) ? 'ENGINE' : 'TYPE' ) . "=MyISAM COMMENT='imported at " . date("l dS of F Y H:i:s A") . "'";
$res=mysql_query($create,$config['dbconnection']) || die(SQLError($create,mysql_error()));
return 1;
}
function ExportXML()
{
global $sql,$config;
$tab="\t";
$level=0;
$t='' . "\n" . '' . "\n";
$sqlt="SHOW Fields FROM `" . $sql['export']['db'] . "`.`" . $sql['export']['tables'][$table] . "`;";
$res=MSD_query($sqlt);
if ($res)
{
$numfields=mysql_num_rows($res);
if ($sql['export']['xmlstructure'] == 1)
{
$t.=str_repeat($tab,$level++) . '
' . "\n";
}
$t.=str_repeat($tab,--$level) . '